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

玩具网站模板长尾词挖掘免费工具

玩具网站模板,长尾词挖掘免费工具,wordpress无法复制图片到文章,网站举报有奖平台文章目录 竞赛链接Q1:100031. 计算 K 置位下标对应元素的和竞赛时代码写法2——手写二进制中1的数量 Q2:100040. 让所有学生保持开心的分组方法数(排序后枚举分界)竞赛时代码 Q3:100033. 最大合金数(二分答…

文章目录

  • 竞赛链接
  • Q1:100031. 计算 K 置位下标对应元素的和
    • 竞赛时代码
    • 写法2——手写二进制中1的数量
  • Q2:100040. 让所有学生保持开心的分组方法数(排序后枚举分界)
    • 竞赛时代码
  • Q3:100033. 最大合金数(二分答案)
    • 竞赛时代码
  • Q4:8041. 完全子集的最大元素和
    • 竞赛时代码——质因数分解+哈希表
    • 解法2——定义core(x)为 x 除去完全平方因子后的剩余结果
  • 成绩记录

竞赛链接

https://leetcode.cn/contest/weekly-contest-363/

Q1:100031. 计算 K 置位下标对应元素的和

https://leetcode.cn/problems/sum-of-values-at-indices-with-k-set-bits/
在这里插入图片描述

提示:
1 <= nums.length <= 1000
1 <= nums[i] <= 10^5
0 <= k <= 10

竞赛时代码

class Solution {public int sumIndicesWithKSetBits(List<Integer> nums, int k) {int ans = 0;for (int i = 0; i < nums.size(); ++i) {if (Integer.bitCount(i) == k) ans += nums.get(i);}return ans;}
}

写法2——手写二进制中1的数量

class Solution {public int sumIndicesWithKSetBits(List<Integer> nums, int k) {int ans = 0;for (int i = 0; i < nums.size(); ++i) {if (cnt(i) == k) ans += nums.get(i);}return ans;}public int cnt(int x) {int res = 0;while (x != 0) {res++;x &= x - 1;}return res;}
}

Q2:100040. 让所有学生保持开心的分组方法数(排序后枚举分界)

https://leetcode.cn/problems/happy-students/description/
在这里插入图片描述
提示:
1 <= nums.length <= 10^5
0 <= nums[i] < nums.length

竞赛时代码

将学生排序后, 一个学生 x 被选了的时候,比它小的一定必须被选;同理一个学生 y 不被选的时候,比它大的一定不能被选。

枚举每个位置,假设 0~i 被选择,i+1~n-1 不被选择。检查是否合理,合理则 ans ++;

class Solution {public int countWays(List<Integer> nums) {// 按题意——一定先选择nums值更小的学生,所以——从小到大排序Collections.sort(nums);int n = nums.size(), ans = 0;if (nums.get(0) > 0) ans++;     // 处理特例是否可以全不选// 枚举选择到每个位置for (int i = 0; i < n; ++i) {  // 检查已经选择人数i+1是否严格大于nums[i]if (i + 1 > nums.get(i)) { // 检查已经选择人数i+1是否严格小于下一个没被选择的学生nums[i+1]  (注意要判断越界)if (i + 1 < n && nums.get(i + 1) <= i + 1) continue;    // 不满足就跳过ans++;  // 这个位置合理,答案+1}}return ans;}
}

Q3:100033. 最大合金数(二分答案)

https://leetcode.cn/problems/maximum-number-of-alloys/description/

在这里插入图片描述
提示:
1 <= n, k <= 100
0 <= budget <= 10^8
composition.length == k
composition[i].length == n
1 <= composition[i][j] <= 100
stock.length == cost.length == n
0 <= stock[i] <= 10^8
1 <= cost[i] <= 100

竞赛时代码

注意到题目中说明——“所有合金都需要由同一台机器制造。”,且观察到 k 的数据范围较小,所以可以枚举使用每台机器。
对于每台机器,使用二分查找求出它可以制造出的最大的合金数量。

二分查找时判断的依据是花费的前有没有在 budget 的范围内。

class Solution {public int maxNumberOfAlloys(int n, int k, int budget, List<List<Integer>> composition, List<Integer> stock, List<Integer> cost) {long ans = 0;// 按照题意,所有合金都需要由同一台机器制造。枚举每个机器。for (int i = 0; i < k; ++i) {ans = Math.max(ans, op(n, budget, composition.get(i), stock, cost));}return (int)ans;}// 计算使用某台机器时的最大制造数量public long op(int n, int budget, List<Integer> composition, List<Integer> stock, List<Integer> cost) {// 二分答案long l = 0, r = (long)Integer.MAX_VALUE;while (l < r) {long mid = l + r + 1 >> 1;if (check(mid, n, budget, composition, stock, cost)) l = mid;else r = mid - 1;}return l;}// 检查是否可以造出 k 个合金public boolean check(long k, int n, int budget, List<Integer> composition, List<Integer> stock, List<Integer> cost) {long s = 0;     // 记录额外花费for (int i = 0; i < n; ++i) {long need = k * composition.get(i);if (need <= stock.get(i)) continue;s += cost.get(i) * (need - stock.get(i));if (s > budget) return false;   // 额外花费超了,不能造出k个合金}return true;}
}

Q4:8041. 完全子集的最大元素和

https://leetcode.cn/problems/maximum-element-sum-of-a-complete-subset-of-indices/description/

在这里插入图片描述
提示:
1 <= n == nums.length <= 10^4
1 <= nums[i] <= 10^9

竞赛时代码——质因数分解+哈希表

对每个下标质因数分解,两两相乘之后的结果是完全平方数,那么这两个数字的质因数分解的奇偶性相同。 例如2=21,8=23;相同质因数出现的次数的奇偶性相同,则两者可以匹配。

根据质因数分解的结果将所有数字分组即可。

class Solution {public long maximumSum(List<Integer> nums) {// 两两之间相乘之后是完全平方数,则质因数分解结果满足各个质因数数量奇偶性相同int n = nums.size();String[] mask = new String[n];long ans = 0;// key是mask,value是sumMap<String, Long> m = new HashMap<>();     for (int i = 1; i <= n; ++i) {mask[i - 1] = op(i);                                        // 计算maskm.merge(mask[i - 1], (long)nums.get(i - 1), Long::sum);     // 求和ans = Math.max(ans, m.get(mask[i - 1]));                    // 更新答案}return ans;}// 计算下标x的质因数分解掩码maskpublic String op(int x) {// 将质因数的数量为奇数的部分记录下来String mask = "";for (int i = 2; i <= x / i; ++i) {if (x % i == 0) {int s = 0;while (x % i == 0) {s++;x /= i;}if (s % 2 == 1) mask += String.valueOf(i) + " ";}}if (x > 1) mask += String.valueOf(x) + " ";return mask;}
}

解法2——定义core(x)为 x 除去完全平方因子后的剩余结果

https://leetcode.cn/problems/maximum-element-sum-of-a-complete-subset-of-indices/solutions/2446037/an-zhao-corei-fen-zu-pythonjavacgo-by-en-i6nu/

计算方式同质因数分解,把 n 的所有出现次数为奇数的质因子相乘,即为 core(n)。

class Solution {public long maximumSum(List<Integer> nums) {// 两两之间相乘之后是完全平方数,则质因数分解结果满足各个质因数数量奇偶性相同int n = nums.size();long[] sum = new long[n + 1];long ans = 0;for (int i = 1; i <= n; ++i) {int c = op(i);                 // 计算masksum[c] += nums.get(i - 1);     // 求和ans = Math.max(ans, sum[c]);   // 更新答案}return ans;}// 计算下标x的质因数分解掩码maskpublic int op(int x) {// 将质因数的数量为奇数的部分记录下来int res = 1;for (int i = 2; i <= x / i; ++i) {if (x % i == 0) {int s = 0;while (x % i == 0) {s++;x /= i;}if (s % 2 == 1) res *= i;}}if (x > 1) res *= x;return res;}
}

成绩记录

在这里插入图片描述
T4 没有那么难!想得慢了!

在这里插入图片描述

http://www.mnyf.cn/news/16093.html

相关文章:

  • 怎么网站显示翻页代码360指数查询工具
  • 山西手动网站建设推广图片百度搜索
  • 太原网站建设优化济宁百度推广价格
  • 国内优秀网站欣赏优化大师下载安装
  • 网站空间管理面板中国人民银行网站
  • 石油网页设计与网站建设东莞做网站推广公司
  • 芜湖做网站需要多少钱营销软文500字范文
  • 网站快照优化怎么做百度贴吧人工客服
  • 网站排名seo网站外链出售
  • 公司官网如何更新网站武汉seo收费
  • 网站建设技术解决方案什么平台引流最快
  • 网站建设公司广州东营网站建设
  • 智慧团建密码只能是8位吗衡阳seo优化
  • aspcms网络公司官方网站源码win7优化大师下载
  • 人才招聘网最新招聘信息深圳关键词优化报价
  • 上海58同城官网长沙seo平台
  • 雅安做网站seo工资待遇 seo工资多少
  • 异构国际设计公司网站长春seo网站优化
  • 做一手房用什么网站好逆冬seo
  • 免费模板下载网站推荐沈阳关键词快照优化
  • 长沙建筑模板厂家重庆seo整站优化方案范文
  • 正能量不良网站推荐2020推广链接让别人点击
  • b2c有哪些企业seo关键词排名教程
  • wordpress 折叠菜单优化大师app下载
  • 厦门网站设计推广公司网络推广培训班
  • 群晖wordpress更改端口浙江关键词优化
  • 河南省住房建设厅网站合肥网站推广优化
  • 网站建设新闻什么是百度指数
  • 网站建设费用优化搜索引擎的方法
  • 电子商务网站的建设不受国内限制的浏览器下载