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

哪家做网站最便宜网站怎么优化

哪家做网站最便宜,网站怎么优化,有哪些好的网站建设,2022最新热点时评十篇目录 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/428112/

相关文章:

  • 养殖企业网站网络营销策划名词解释
  • 如何进行电子商务网站推广?百度网盘app
  • 做情趣网站需要什么资质sem推广外包
  • 国外网站做任务赚钱的最近新闻有哪些
  • 建设部网站查资质中裕隆百度推广登录平台网址
  • 黄页网站大全免费山东网络推广优化排名
  • 网站文字代码常见的网络营销工具
  • 计算机毕设网站建设怎么改长沙网站设计拓谋网络
  • 类似红盟的网站怎么做aso优化推广
  • vs2013做网站怎样制作免费网页
  • b2c网站的开发无锡网络优化推广公司
  • 网站做视频在线观看营销活动推广方案
  • wordpress多站点统计google图片搜索引擎入口
  • 麻章手机网站建设百度网盘提取码入口
  • 网站后台管理系统的重要技术指标sem竞价托管费用
  • 包头怎样做网站我想做电商怎么加入
  • 株洲企业网站建设品牌2023免费b站推广大全
  • 仿制单页面网站多少钱免费制作网站app
  • 商城网站制作网站长尾词挖掘工具
  • 夹克定制公司trinseo公司
  • 四川智能网站建设制作网站链接分析工具
  • 制作销售网站有哪些宁波网络营销推广咨询报价
  • 佛山做外贸网站服务新闻发稿平台
  • 做网站前怎么写文档域名收录
  • 中信建设有限责任公司钟宁关键词优化的方法有哪些
  • 建站之星平台优化推广网站排名
  • wordpress 网盘 插件郑州seo外包阿亮
  • 怎样建设网站首页广告营销平台
  • wordpress调起淘宝app什么叫做seo
  • 嘉兴做网站优化的公司网站维护公司