文章目录

  • Codeforces Round #682 (Div. 2)
    • A. Specific Tastes of Andre
    • B. Valerii Against Everyone
    • C. Engineer Artem
    • D. Powerful Ksenia
    • E. Yurii Can Do Everything
    • F. Olha and Igor

Codeforces Round #682 (Div. 2)

A. Specific Tastes of Andre

题意: 要求构造一个长度为n的perfect数组

题解: 全部输出1即可

代码:

#include <bits/stdc++.h>using namespace std;int const N = 2e5 + 10;
typedef long long LL;
typedef pair<int, int> PII;int n, m, T;int main() {// freopen("in.txt", "r", stdin);cin >> T;while(T--) {cin >> n;for (int i = 1; i <= n; ++i) cout << 1 << " ";cout << endl;}return 0;
}

B. Valerii Against Everyone

题意: 给定b数组,ai=2bia_i = 2 ^ {bi}ai​=2bi,问是否存在两段a数组相同

题解: 因为a数组是b数组的2进制形式,因此a数组的每个元素其实都是100000的形式,要想使得两段a数组相同,必须存在两个相同的元素,否则无论多少个11111都凑不出10000

代码:

#include <bits/stdc++.h>using namespace std;int const N = 2e5 + 10;
typedef long long LL;
typedef pair<int, int> PII;int n, m, T, a[N];
unordered_map<int, int> mp;int main() {// freopen("in.txt", "r", stdin);cin >> T;while(T--) {mp.clear();cin >> n;for (int i = 1; i <= n; ++i) {scanf("%d", a+ i);mp[a[i]]++;}int flg = 0;for (int i = 1; i <= n; ++i) {if (mp[a[i]] >= 2) flg = 1;}if (!flg )cout << "NO\n";else cout << "YES\n";}return 0;
}

C. Engineer Artem

题意: 对于一个矩阵,每个元素可以选择加一或者不加一。要求找出一种构造方式使得任意2个相邻的元素奇偶性不相同。

题解: 对于一个棋盘,可以把位置(i, j)且i + j为偶数的地方都变成偶数,为奇数的地方都变成奇数,那么就可以使得任意两个相邻的元素奇偶性不同

代码:

#include <bits/stdc++.h>using namespace std;int const N = 2e5 + 10;
typedef long long LL;
typedef pair<int, int> PII;int n, m, T, a[110][110];int main() {// freopen("in.txt", "r", stdin);cin >> T;while(T--) {cin >> n >> m;for (int i = 1; i <= n; ++i) {for (int j = 1; j <= m; ++j) {scanf("%d", &a[i][j]);if ((i + j) & 1) {if (a[i][j] % 2 == 0) a[i][j] ++;}else {if (a[i][j] % 2) a[i][j]++;}}}for (int i = 1; i <= n; ++i) {for (int j = 1; j <= m; ++j) {cout << a[i][j] << " ";}cout << endl;}}return 0;
}

D. Powerful Ksenia

题意: 给定一个数组,每次可以选择3个元素,然后把这3个元素的值,都以他们的异或值代替。问是否能够通过n次操作使得整个数组变成同一个数字

题解: 我们知道如果a,b,b异或,那么3个数字都会变成a,因此我们需要尽可能地构造出这样的情况,使得数组变为2个相同,一个不相同,即aabbccddeefff,这样我们就可以从eef开始往前替代,最后全部都变为f。这样的操作次数最多为n-1次。那么什么时候无解呢?我们知道偶数最后会留下一个小尾巴,因此如果最后一个小尾巴和前面异或得到的数字不同,那么就是no

代码:

#include <bits/stdc++.h>using namespace std;int const N = 2e5 + 10;
typedef long long LL;
typedef pair<int, int> PII;int n, m, T, a[N], b[N];int main() {cin >> n;int ans=0,cnt=0;for (int i = 1; i <= n; ++i){cin >> a[i],ans^=a[i];}if(n%2==0&&ans){puts("NO");return 0;}cnt = n;if(cnt%2==0) cnt-=1;puts("YES");cout<<cnt-2<<endl;for(LL i=1;i<=cnt-2;i+=2) cout<<i<<" "<<i+1<<" "<<i+2<<endl;for(LL i=cnt-2;i>=3;i-=2) cout<<i<<" "<<i-1<<" "<<i-2<<endl;return 0;
}

E. Yurii Can Do Everything

题意: 求一个数组中有多少子串满足: a[l]xora[r]=∑i=l+1r−1a[i]a[l]\ xor\ a[r] = \sum_{i = l+1}^{r - 1}a[i]a[l] xor a[r]=∑i=l+1r−1​a[i]

题解: 对于a[l]和a[r],即k1和k2分别为他们最高位的k的位置。那么上述式子必然满足:2max(k1,k2)+1>∑i=l+1r−1a[i]2^{max(k1,k2) + 1} > \sum_{i = l+1}^{r - 1}a[i]2max(k1,k2)+1>∑i=l+1r−1​a[i]。而问发现满足这个式子的情况其实很少,平摊下来其实对于当前的位置i,其实只会向后扫描logn次,因此我们可以正向扫描一次,然后反向扫描一次即可,每次扫描的时候需要判断下重

代码:

#include <bits/stdc++.h>using namespace std;int const N = 2e5 + 10;
typedef long long LL;
typedef pair<int, int> PII;int n, m, T, a[N];
set<PII> mp;
int res = 0;void solve(bool op) {for(int i=1;i+2<=n;i++) {LL s=a[i+1];int k=0;for(int j=0;j<=29;j++) if(a[i]>>j&1) k=j;for (int j = i + 2; j <= n; ++j) {if (s == (a[i] ^ a[j])) {if (!op) mp.insert({n-j+1,n-i+1}), res++;else if (!mp.count({i,j})) res++;}s += a[j];if(s>=(1<<k+1)) break;}}
}int main() {cin >> n;for (int i = 1; i <= n; ++i) scanf("%d", &a[i]);solve(0);reverse(a + 1, a + 1 + n);solve(1);cout << res << endl;return 0;
}

F. Olha and Igor

题意: 交互题,不写了

题解:

代码:

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

  1. Codeforces Round #682 (Div. 2)D Powerful Ksenia ///思维

    cf地址 题目大意:Ksenia has an array a consisting of n positive integers a1,a2,-,an. In one operation she c ...

  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. 1-flutter 安装步骤
  2. html css 极简模板,极简主义作品展示HTML模板
  3. brackets如何自动生成html,Brackets编辑器怎样自动格式化HTML代..._网络编辑_帮考网...
  4. 【安全系类之设计】应用安全相关
  5. python 内置方法 BUILT-IN METHODS
  6. 单独编译使用WebRTC的音频处理模块 - android
  7. HDU2022 海选女主角【入门】
  8. linux系统 设置网卡ping通主机连上外网
  9. 数据结构--二叉搜索树
  10. ztree 使用教程
  11. 【老生谈算法】matlab实现Retinex算法视频增强——Retinex算法
  12. 7大排序时间复杂度对比、以及优化
  13. Mstar 光机遥控器适配
  14. 创新BMW X7 与你一路前行
  15. ECCV2022细粒度图像检索SEMICON学习记录
  16. 土星环年龄很轻?卡西尼号探测船坠毁前传送珍贵数据
  17. 三十七、缓存注解@Cacheable、@CacheEvict、@CachePut详解
  18. IE浏览器JSON未定义
  19. uniapp手机验证码功能实现
  20. 渗透测试入门19之渗透测试工具2

热门文章

  1. 华为p20pro关闭HTML查看,华为p20如何调出息屏时钟 每天定时开启灭屏显示功能
  2. 3D打印机模型设备设计 毕业设计(论文)开题报告
  3. MathEmatics11.3下开发第二讲之:加载wrl模型源码详解
  4. 2018山东计算机录取分数,【分数线】2018山东省公费师范生分数线汇总
  5. 阜阳计算机学校招生,阜阳计算机学校2021年招生简介
  6. 提前还贷 别忘退税退保
  7. Ubuntu新装系统必装软件
  8. uniapp、hbuilderx做微信小程序,获取当前城市定位(省份国家街道等)
  9. 用pycharm写python_在PyCharm中使用VPython
  10. 香港汇丰取消个人账户最低存款要求及月费