目录

A. Cirno's Perfect Bitmasks Classroom

B. Patchouli's Magical Talisman

C. Manipulating History

D. The Enchanted Forest


A. Cirno's Perfect Bitmasks Classroom

A. Cirno's Perfect Bitmasks Classroom

思路

若lowbit(n)的1为n的唯一的1,则输出该数+1(令最后一位为1,保证异或^操作);否则输出lowbit(n)(其他位上的1保证了异或^操作)

其中,当 n == 1 时,特殊判断,因为 + 1不能保证异或^操纵的成立,所以不一定成立

代码如下

#include <bits/stdc++.h>using namespace std;typedef long long LL;
typedef pair<int, int> PII;const int N = 2e5 + 10, mod = 1e9 + 7;int T;int lowbit(int x)
{return x & -x;
}void solve()
{int n;scanf("%d", &n);if(n < 3) cout << 3 << endl;else if(n - lowbit(n) == 0) cout << lowbit(n) + 1 << endl;else cout << lowbit(n) << endl;}int main()
{scanf("%d", &T);while(T -- )solve();return 0;
}

B. Patchouli's Magical Talisman

B. Patchouli's Magical Talisman

思路:只需让任意的一个奇数与其他偶数合并除以二即可,存在奇数则直接合并,不存在则令lowbit最小的偶数变为奇数,在与其他的偶数合并即可

代码如下

#include <bits/stdc++.h>using namespace std;typedef long long LL;
typedef pair<int, int> PII;const int N = 2e5 + 10, mod = 1e9 + 7;int T;int qmi(int a, int k)
{int res = 1;while(k){if(k & 1) res = (LL)res*a % mod;k >>= 1;a = (LL)a*a%mod;}return res;
}LL lowbit(LL x)
{return x & -x;
}void solve()
{int n, k;scanf("%d", &n);LL a[N];LL res = 0;LL sum = 1 << 30, f = 0;for(int i = 0; i < n; i ++ ){scanf("%lld", &a[i]);if(a[i] % 2 == 0) sum = min(lowbit(a[i]), sum), res ++;else f = 1;}if(f){printf("%d\n", res);return;}else printf("%d\n", res - 1 + (int)log2(sum));
}int main()
{scanf("%d", &T);while(T -- )solve();return 0;
}

C. Manipulating History

C. Manipulating History

思路

令一个字符串替换为另一个字符串过程为,

1原字符串包含要替换的字符串,2将要替换的字符串与替换后的字符串列出,3替换

我们可知,在每一部替换中,要替换的字符串(即不是答案的字符串)一定出现了两次,最后剩余的字符串,一定是奇数。

遍历所有字符串(包括要替换的字符串,与,替换过的字符串),字符的数量为奇数的一定为最初的字符串

代码如下

#include <bits/stdc++.h>using namespace std;typedef long long LL;
typedef pair<int, int> PII;const int N = 200010;int T;void solve()
{int n;scanf("%d", &n);unordered_map<char, int> mp;string s;for(int i = 0; i < 2*n+1; i ++ ){cin >> s;for(int i = 0; i < s.size(); i ++ )mp[s[i]] ++;}for(auto it : mp){if(it.second % 2){cout << it.first << endl;return;}}}int main()
{scanf("%d", &T);while(T -- )solve();return 0;
}

D. The Enchanted Forest

D. The Enchanted Forest

思路

分情况讨论+贪心

若 k < n,则找到最大长度为k的连续子序列,计算每天生长的高度,得出结果即可,计算的区间为 [i-k+1, i] 区间,找出最大

若 k >= n ,则只走最后的 n 步可以使答案最大,然后计算每天生长的高度,计算即可

代码如下

#include <bits/stdc++.h>using namespace std;typedef long long LL;
typedef pair<int, int> PII;const int N = 200010;int T;
int n, m, a[N];
LL s[N];void solve() {cin >> n >> m;s[0] = 0;LL res = 0;for (int i = 1; i <= n; i++) {cin >> a[i];s[i] = s[i - 1] + a[i];if (i >= m) res = max(res, s[i] - s[i - m]);}if (m <= n) {res += (LL)m * (m - 1) / 2;cout << res << endl;}else {int k = m;res = s[n];res += (LL)(k*2-n-1)*n/2;cout << res << endl;}
}int main()
{scanf("%d", &T);while(T -- )solve();return 0;
}

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

  1. Codeforces Round #796 (Div. 2) B Patchouli‘s Magical Talisman

    题意: 广藿香正在制作一个神奇的护身符. 她最初有 n 个魔法令牌. 它们的魔力可以用正整数a1,a2,-,an来表示. 广藿香可以对令牌执行以下两种操作. 融合:广藿香选择两个标记,移除它们,并创造 ...

  2. Codeforces Round #297 (Div. 2)E. Anya and Cubes 折半搜索

    Codeforces Round #297 (Div. 2)E. Anya and Cubes Time Limit: 2 Sec  Memory Limit: 512 MB Submit: xxx  ...

  3. Codeforces Round #506 (Div. 3)

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

  4. 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 ...

  5. 构造 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 的例子可以 ...

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

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

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

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

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

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

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

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

最新文章

  1. 4K P60 444 相关的事
  2. vivo android8公测,vivo 开启安卓P公测不限人数!这四款机型用户别错过了
  3. 【中级软考】PV操作是什么?(passeren【通过、申请资源、减量】、vrijgeven【释放、释放资源、增量】【荷兰文】)(用于进程间同步)
  4. python 内置函数 sum()函数 求和函数
  5. 数学之美 系列十六 (下)- 不要把所有的鸡蛋放在一个篮子里 最大熵模型
  6. 样机模型尺寸怎么改_土耳其五代机全尺寸样机模型首次亮相巴黎航展,这不是玩票,是一架认真设计的五代机!...
  7. Ubuntu14.04系统下安装配置OpenCV 4.0.0开发环境全过程
  8. java 多线程的同步问题_java多线程解决同步问题的几种方式,原理和代码
  9. 洛谷P2144 bzoj1002 [FJOI2007]轮状病毒 (高精度板子)
  10. sql azure 语法_使用Azure Data Studio开发SQL Server数据库
  11. Java web 使用页面压缩
  12. 三角形的外心 内心 重心 垂心 九点圆心与各圆半径的算法
  13. 在线广告结算方式与ecpm估计关系
  14. 【NOIP模拟赛】【数学真奇妙系列】纸盒子
  15. 一年收入8000万美金,美华国际医疗凭借“口罩”能否撑起IPO?
  16. MOOS-ivp 实验四 MOOS编程入门(2)MOOS类讲解
  17. BingObjectnessCVPR14源码编译环境由vs2012+64位转换为vs2012+32位机过程
  18. JavaScript工具函数宝典(内含95个函数)
  19. C语言中指针是什么?
  20. 浅析M-lag技术(后附华为交换机配置命令)

热门文章

  1. java实现凯撒密码_凯撒密码--java实现
  2. 西游记中观世音菩萨为什么能与如来佛祖同为五方五老之一?
  3. 用5v1a的充电器给1.2v的镍氢电池充电(充满后可自动断电)或者可以定时
  4. 各种activation function(激活函数) 简介
  5. 全国最新行政区划sql文件
  6. 九度1047 1163
  7. iperf java_网络性能测试工具iperf详解
  8. vspython版本控制_git进行版本控制心得详谈
  9. linux下Local Adress(本地ip:端口)和Foreign Address(外部ip:端口)
  10. 手机app和单片机蓝牙通讯c语言,单片机怎么和手机通信,你知道吗?