当前位置: 首页 > news >正文

贵阳网站制作系统最新实时大数据

贵阳网站制作系统,最新实时大数据,网页设计作品源代码彼岸花坊,哪个网站可以给图片做链接目录 100262. 求出加密整数的和 原题链接 思路分析 AC代码 3080. 执行操作标记数组中的元素 原题链接 思路分析 AC代码 100249. 替换字符串中的问号使分数最小 原题链接 思路分析 AC代码 100241. 求出所有子序列的能量和 原题链接 思路分析 AC代码 100262. 求出…

目录

100262. 求出加密整数的和

原题链接

思路分析

AC代码

3080. 执行操作标记数组中的元素

原题链接

思路分析

AC代码

100249. 替换字符串中的问号使分数最小

原题链接

思路分析

AC代码

100241. 求出所有子序列的能量和

原题链接

思路分析

AC代码



100262. 求出加密整数的和

原题链接

100262. 求出加密整数的和

思路分析

直接模拟即可

O(nlogn)

AC代码

class Solution {
public:int sumOfEncryptedInt(vector<int>& nums) {for(auto& x : nums){string s = to_string(x);char ma = *max_element(s.begin(), s.end());for(auto& ch : s) ch = ma;x = stoi(s);}return accumulate(nums.begin(), nums.end(), 0);}
};

3080. 执行操作标记数组中的元素

 

原题链接

3080. 执行操作标记数组中的元素

思路分析

   还是模拟题

把所有元素放set内,然后遍历操作,如果访问过就执行操作二,否则先执行操作一再执行操作二

O(nlogn)(因为最多删n次)

AC代码

class Solution {
public:typedef pair<int,int> pii;vector<long long> unmarkedSumArray(vector<int>& nums, vector<vector<int>>& q) {int n = q.size(), m = nums.size();long long tot = 0;vector<long long> ret(n);vector<bool> vis(m);set<pii> s;for(int i = 0; i < m; i++ ) s.insert(make_pair(nums[i], i)), tot += nums[i];for(int j = 0; j < n; j++){int i = q[j][0], k = q[j][1];if(!vis[i]) s.erase(s.find(make_pair(nums[i], i))), tot -= nums[i], vis[i] = 1;for(; k > 0 && s.size(); k--) vis[s.begin()->second] = 1, tot -= s.begin()->first, s.erase(s.begin());ret[j] = tot;}return ret;}
};

100249. 替换字符串中的问号使分数最小

原题链接

100249. 替换字符串中的问号使分数最小

 

思路分析

 贪心

我们考虑最终状态的分数来自于26个字母的贡献,不同字母之间互不影响

那么最终状态其实就是有26个桶,桶内元素个数分别为cnt[i],然后满足Σcnt[i] = len(s)

然后对于每个桶的贡献为(cnt[i] - 1) * cnt[i] / 2

要使得所有桶的贡献和最小,我们就可以贪心地来做

先把不是问号地字符放到桶中,然后顺序遍历问号,将其赋值为当前桶内数目最少的字符,然后更新桶

但这只是获取了最终的各个桶内字符的个数,然后我们将原有的字符从桶中拿去,然后遍历问号位置,按字符序从桶内取出字符即可

O(nU),U为字符集大小

AC代码

class Solution {
public:string minimizeStringValue(string s) {int cnt[26]{0};string ret = s;for(auto x : ret) if(x != '?') cnt[x - 'a']++;for(auto& ch : s)if(ch == '?'){int i = min_element(cnt, cnt + 26) - cnt;ch = i + 'a', cnt[ch - 'a']++;}for(auto x : ret) if(x != '?') cnt[x - 'a']--;for(auto& ch : ret){if(ch == '?'){int i = 0;for(; !cnt[i]; i++);ch = i + 'a', cnt[i]--;}}return ret;}
};

100241. 求出所有子序列的能量和

原题链接

100241. 求出所有子序列的能量和

思路分析

很明显的01背包

先考虑和为k的子序列数目,显然就是01背包板子问题

但是这道题相当于是求子序列的和为k的子序列的和的和

那么我们这样考虑,对于那些和为k的子序列可以被多少序列包含?

显然有2 ^ (n - len)个序列包含了这个和为k的子序列

那么我们只需要在01背包的板子的转移方程稍加修改即可

定义f[i][j]为前i个元素中,和为j的所有子序列的能量和

那么递推的时候还是选或不选的思路

选或不选,有f[i][j] = f[i - 1][j] * 2,即nums[i]可以加入前面和为j的子序列也可以不加入

然后我们注意,nums[i]也可以和前面和为j - nums[i]的子序列组合形成一个新的和为j的序列

所以当j > nums[i]的时候,有f[i][j] += f[i - 1][j - nums[i]]

O(nk)

AC代码

class Solution {
public:
static constexpr int mod = 1e9+7;int sumOfPower(vector<int>& nums, int k) {long long f[105]{0};f[0] = 1;for(auto x : nums)for(int j = k; j >= 0; j--)if(j >= x) f[j] = (f[j] * 2 + f[j - x]) % mod;else f[j] = (f[j] << 1) % mod;\return f[k];}
};

http://www.hkea.cn/news/369991/

相关文章:

  • wordpress安全权限关键词优化公司哪家好
  • 银川做网站服务google play下载安卓
  • 科技型中小企业服务网安徽搜索引擎优化seo
  • 网站建设专家排名邯郸seo营销
  • 做网站一个月20g流量够吗安全又舒适的避孕方法有哪些
  • 扫二维码直接进网站怎么做怎么提交网址让百度收录
  • 柳州建设局网站广告买卖网
  • 做外贸一般上哪些网站google play谷歌商店
  • 泉州手机网站制作如何做企业产品推广
  • 徐州手机网站设计汕头网站建设优化
  • 有没有专业收费做网站优化的百度百科优化排名
  • 常州网站建设哪家便宜江西seo推广软件
  • 如何用pageadmin做网站品牌宣传策略有哪些
  • 网站免费优化软件需要优化的地方
  • 24小时学会网站建设下载厦门百度竞价开户
  • 怎样学做网站网站权重等级
  • 做网站好还是做淘宝好北京seo推广
  • 郑州门户网站建设哪家好网站首页不收录
  • 网站制作营销型哪些网站可以发广告
  • 最新政府网站建设理念广州头条新闻最新
  • 济宁网站建设神华线上推广的三种方式
  • 我要表白网站在线制作如何做网站的教程
  • 福州论坛建站模板策划网络营销活动
  • 网站建设 天津百度市场应用官方app
  • 动态网站制作流程友情链接的定义
  • 企业网站开发方案免费建立一个网站
  • 网站引导页面制作的四个任务名称推广引流的10个渠道
  • 南宁网站建设制作后台网站关键词优化价格
  • 微信小程序商城制作公司宁波seo推广服务
  • 响应式购物网站公司seo是什么意思