Codeforces Round #796 (Div. 2)
目录
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)相关推荐
- Codeforces Round #796 (Div. 2) B Patchouli‘s Magical Talisman
题意: 广藿香正在制作一个神奇的护身符. 她最初有 n 个魔法令牌. 它们的魔力可以用正整数a1,a2,-,an来表示. 广藿香可以对令牌执行以下两种操作. 融合:广藿香选择两个标记,移除它们,并创造 ...
- 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 ...
- Codeforces Round #506 (Div. 3)
Codeforces Round #506 (Div. 3) 实习期间事不多,对div3 面向题解和数据编程了一波 A. Many Equal Substrings 题目链接 A题就是找后缀和前缀重合 ...
- 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 ...
- 构造 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 的例子可以 ...
- Codeforces Round #696 (Div. 2) (A ~ E)超高质量题解(每日训练 Day.16 )
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #696 (Div. 2) (A ~ E)超高质量题解 比赛链接:h ...
- Codeforces Round #712 Div.2(A ~ F) 超高质量题解(每日训练 Day.15 )
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #712 Div.2(A ~ F) 题解 比赛链接:https:// ...
- Codeforces Round #701 (Div. 2) A ~ F ,6题全,超高质量良心题解【每日亿题】2021/2/13
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 A - Add and Divide B - Replace and Keep Sorted C ...
- Codeforces Round #700 (Div. 2) D2 Painting the Array II(最通俗易懂的贪心策略讲解)看不懂来打我 ~
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 整场比赛的A ~ E 6题全,全部题目超高质量题解链接: Codeforces Round #700 ...
最新文章
- 4K P60 444 相关的事
- vivo android8公测,vivo 开启安卓P公测不限人数!这四款机型用户别错过了
- 【中级软考】PV操作是什么?(passeren【通过、申请资源、减量】、vrijgeven【释放、释放资源、增量】【荷兰文】)(用于进程间同步)
- python 内置函数 sum()函数 求和函数
- 数学之美 系列十六 (下)- 不要把所有的鸡蛋放在一个篮子里 最大熵模型
- 样机模型尺寸怎么改_土耳其五代机全尺寸样机模型首次亮相巴黎航展,这不是玩票,是一架认真设计的五代机!...
- Ubuntu14.04系统下安装配置OpenCV 4.0.0开发环境全过程
- java 多线程的同步问题_java多线程解决同步问题的几种方式,原理和代码
- 洛谷P2144 bzoj1002 [FJOI2007]轮状病毒 (高精度板子)
- sql azure 语法_使用Azure Data Studio开发SQL Server数据库
- Java web 使用页面压缩
- 三角形的外心 内心 重心 垂心 九点圆心与各圆半径的算法
- 在线广告结算方式与ecpm估计关系
- 【NOIP模拟赛】【数学真奇妙系列】纸盒子
- 一年收入8000万美金,美华国际医疗凭借“口罩”能否撑起IPO?
- MOOS-ivp 实验四 MOOS编程入门(2)MOOS类讲解
- BingObjectnessCVPR14源码编译环境由vs2012+64位转换为vs2012+32位机过程
- JavaScript工具函数宝典(内含95个函数)
- C语言中指针是什么?
- 浅析M-lag技术(后附华为交换机配置命令)
热门文章
- java实现凯撒密码_凯撒密码--java实现
- 西游记中观世音菩萨为什么能与如来佛祖同为五方五老之一?
- 用5v1a的充电器给1.2v的镍氢电池充电(充满后可自动断电)或者可以定时
- 各种activation function(激活函数) 简介
- 全国最新行政区划sql文件
- 九度1047 1163
- iperf java_网络性能测试工具iperf详解
- vspython版本控制_git进行版本控制心得详谈
- linux下Local Adress(本地ip:端口)和Foreign Address(外部ip:端口)
- 手机app和单片机蓝牙通讯c语言,单片机怎么和手机通信,你知道吗?