A

题意:

  • n个物品各有一个价格,不买小于l和大于r的,有k块钱,最多可以买几件?

思路:

  • 去掉不买的从小到大排个序,买到不能买为止。
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int maxn = 1e5+10;
int main(){ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);int T;  cin>>T;while(T--){int n, l, r, k;  cin>>n>>l>>r>>k;vector<int>vc;for(int i = 1; i <= n; i++){int x;  cin>>x;if(x>=l && x<=r)vc.push_back(x);}sort(vc.begin(),vc.end());int ans = 0;for(int x: vc){//cout<<x<<"\n";if(k >= x){ans++;  k -= x;}else{break;}}cout<<ans<<"\n";}return 0;
}

B

题意:

  • 数轴上需要摆放一共n+1个点,两点距离为差的绝对值。
  • 从0号点出发到其他n个点分别来回走ai次,求总距离最小的点摆放方案。

思路:

  • 0号点放在0,剩下的点按照需要走的次数从大到小排序,依次在0号点一左一右摆放上去即可。
  • 记得开longlong不然会WA4
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const LL maxn = 1e5+10;
int main(){ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);LL T;  cin>>T;while(T--){LL n;  cin>>n;vector<pair<LL,LL> >vc;for(LL i = 1; i <= n; i++){LL x;  cin>>x;vc.push_back(make_pair(x,i));}sort(vc.begin(),vc.end());vector<LL>p(n+1);p[0] = 0;LL l = -1, r = 1, ans = 0;for(LL i = vc.size()-1; i >= 0; i--){if(i%2==0){p[vc[i].second] = l;ans += abs(0-l)*2*vc[i].first;l--;}else{p[vc[i].second] = r;ans += abs(r-0)*2*vc[i].first;r++;}}cout<<ans<<"\n";for(LL i = 0; i <= n; i++){cout<<p[i]<<" ";}cout<<"\n";}return 0;
}

C

题意:

  • 长为n的数组,给出m对l,r,x,表示a[l] 按位或 a[l+1] … 按位或a[r]的值为x。
  • 求原数组所有子序列按位异或和的总和。

思路:

  • 依次考虑每一位的贡献,如果存在该位为1,那么互相异或后,不管出现多少次,都会产生pows(2,i-1)的贡献。如果全or也是0,那么最后贡献肯定也是0。
  • 所以结论为pows(2,n-1)*所有x异或后的数。
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int maxn = 1e5+10;
const int mod = 1e9+7;
LL pows(LL a, LL x, LL p){if(x==0)return 1; LL t = pows(a, x>>1,p);if(x%2==0)return t*t%p;return t*t%p*a%p;}
int main(){ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);int T;  cin>>T;while(T--){int n, m;  cin>>n>>m;int ans = 0;for(int i = 1; i <= m; i++){int l, r, x;  cin>>l>>r>>x;ans |= x;}ans = ans*pows(2,n-1,mod)%mod;cout<<ans<<"\n";}return 0;
}

D1

题意:

  • 给出一个长为n的序列,求构造一种排序方式,让 ∑i=1ngcd(a1,a2,a3,,,ai)\sum_{i=1}^ngcd(a1,a2,a3,,,ai)∑i=1n​gcd(a1,a2,a3,,,ai)的值最大,输出这个值。

思路:

  • 令s[i]表示a中第i个数的倍数有几个,dp[i]表示以第i个数开头的最大值。
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int maxn = 5e6+10;
LL s[maxn], dp[maxn];
int main(){ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);int n;  cin>>n;for(int i = 1; i <= n; i++){int x;  cin>>x;  s[x]++;}for(int i = 1; i < maxn; i++){for(int j = 2*i; j < maxn; j+=i){s[i] += s[j];}}LL ans = 0;for(int i = maxn-5; i >= 1; i--){dp[i] += s[i]*i; //这s[i]个数都会与a[i]产生大小为a[i]的公因数for(int j = 2*i; j < maxn; j+=i){//枚举a[i]的所有倍数dp[i] = max(dp[i], dp[j]+(s[i]-s[j])*i);}ans = max(ans, dp[i]);}cout<<ans<<"\n";return 0;
}

Codeforces Round #757 (Div. 2)ABCD1相关推荐

  1. Codeforces Round #757 (Div. 2)

    A. Divan and a Store B. Divan and a New Project C. Divan and bitwise operations D1. Divan and Kostom ...

  2. Codeforces Round #506 (Div. 3)

    Codeforces Round #506 (Div. 3) 实习期间事不多,对div3 面向题解和数据编程了一波 A. Many Equal Substrings 题目链接 A题就是找后缀和前缀重合 ...

  3. Codeforces Round #563 (Div. 2)/CF1174

    Codeforces Round #563 (Div. 2)/CF1174 CF1174A Ehab Fails to Be Thanos 其实就是要\(\sum\limits_{i=1}^n a_i ...

  4. 构造 Codeforces Round #302 (Div. 2) B Sea and Islands

    题目传送门 1 /* 2 题意:在n^n的海洋里是否有k块陆地 3 构造算法:按奇偶性来判断,k小于等于所有点数的一半,交叉输出L/S 4 输出完k个L后,之后全部输出S:) 5 5 10 的例子可以 ...

  5. Codeforces Round #696 (Div. 2) (A ~ E)超高质量题解(每日训练 Day.16 )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #696 (Div. 2) (A ~ E)超高质量题解 比赛链接:h ...

  6. Codeforces Round #712 Div.2(A ~ F) 超高质量题解(每日训练 Day.15 )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #712 Div.2(A ~ F) 题解 比赛链接:https:// ...

  7. Codeforces Round #701 (Div. 2) A ~ F ,6题全,超高质量良心题解【每日亿题】2021/2/13

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 A - Add and Divide B - Replace and Keep Sorted C ...

  8. Codeforces Round #700 (Div. 2) D2 Painting the Array II(最通俗易懂的贪心策略讲解)看不懂来打我 ~

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 整场比赛的A ~ E 6题全,全部题目超高质量题解链接: Codeforces Round #700 ...

  9. Codeforces Round #699 (Div. 2) F - AB Tree(贪心、树上DP)超级清晰,良心题解,看不懂来打我 ~

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #699 (Div. 2) F - AB Tree Problem ...

最新文章

  1. 阿里云Centos 解决挖矿程序:kdevtmpfsi--服务器CPU占用高、内存占用高
  2. svn中的ignore
  3. redis界面管理工具phpRedisAdmin 安装
  4. jQuery 重置/reset()表单
  5. linux局部变量特殊字符替换,变量,全局变量,环境变量,特殊符号、管道符命令:cut、sort、uniq、wc、tee、tr、sp...
  6. windows 10 使用 VMWare workstation player 启动 windows XP 虚拟机出错的问题
  7. LinkedList专题3
  8. 网络通信程序做个瞬间的扫描判断
  9. HTML5等先关。。。
  10. 女学霸考692分想当“程序媛”,网友:快劝劝孩子
  11. P3244 [HNOI2015]落忆枫音
  12. Java设计模式-Builder生成器模式
  13. 浅谈算法和数据结构: 十 平衡查找树之B树
  14. Ubuntu 18.04 安装驱动
  15. 【Amoeba】amoeba实现mysql读写分离
  16. Mac OS X 10.13.6升级到更高版本的方法
  17. 微信小程序tarBar使用
  18. 原理图库:元器件引脚命名如何输出上划线
  19. Symbian OS应用编程图形篇之架构
  20. Android基础控件—SearchView

热门文章

  1. GAN(Generative Adversarial Networks) 初步
  2. Batch Normalization 反向传播(backpropagation )公式的推导
  3. 常见信号的模拟仿真(matlab)(spike signal)
  4. Trick(九)—— ++i 与 i++ 的本质区别
  5. flops什么意思中文_不知道什么是FLOPs?进来瞧瞧~
  6. python语法训练_18-04-17回顾: python3语法+刻意训练
  7. uniapp动态显示数组_【报Bug】uniapp 在小程序中 动态修改添加 数组 数据 ,点击获取的索引值错误...
  8. php object 对象不存在。增加对象_《相亲者女》:找一个匹配的对象,但永远不存在...
  9. python小白从哪来开始-如何从零开始学习Python【小白入门】
  10. python函数定义及调用-Python函数及变量的定义和使用