Codeforces Round #682 Div2 简要题解
A.Specific Tastes of Andre
题意
构造一个长度为 \(n\) 的序列,使得每个非空子序列的和都被其长度整除。
思路
直接每个数都是 \(1\) 即可。
代码
int main()
{
int T; scanf( "%d",&T );
while ( T-- )
{
int n=read();
for ( int i=1; i<=n; i++ )
printf( "1 " );
printf( "\n" );
}
return 0;
}
B.Valerii Against Everyone
题意
给定一个长度为 \(n(n\leq 1000)\) 的序列 \(b(b_i\leq 1e9)\) ,定义 \(a_i=2^{b_i}\) ,问 \(a\) 中是否存在两个不相交子序列的和一样。
思路
不相交首先是没用的;因为相交就把中间部分去掉即可。
如果两个串的和相等,
如果两个串不是完全等价,那么一定存在二进制中的进位,也就是必定存在两个元素相等,选这两个即可;
如果完全等价,那么显然存在两个元素相等。
所以 sort 一下,然后判断有没有相等元素即可。
代码
int main()
{
int T=read();
while ( T-- )
{
int n=read();
for ( int i=1; i<=n; i++ )
b[i]=read();
sort( b+1,b+1+n ); bool fl=0;
for ( int i=1; i<n; i++ )
if ( b[i]==b[i+1] ) { fl=1; printf( "YES\n" ); break; }
if ( !fl ) printf( "NO\n" );
}
return 0;
}
C.Engineer Artem
题意
给定一个 \(n\times m\) 的矩阵 \(a\) ,要求给出一个矩阵 \(b\) 满足 \(b_{i,j}=a_{i,j}\) 或者 \(b_{i,j}=a_{i,j}+1\) ,使得任意相邻元素均不相同。
思路
能够 \(+1\) 就相当于能随意改变奇偶。把棋盘黑白相间染色,白色填偶数黑色填奇数即可。(反之亦然)
思路
int main()
{
int T=read();
while ( T-- )
{
int n=read(),m=read();
for ( int i=1; i<=n; i++ )
for ( int j=1; j<=m; j++ )
a[i][j]=read();
for ( int i=1; i<=n; i++ )
for ( int j=1; j<=m; j++ )
if ( (a[i][j]&1)!=((i+j)&1) ) a[i][j]++;
for ( int i=1; i<=n; i++,printf("\n") )
for ( int j=1; j<=m; j++ )
printf( "%d ",a[i][j] );
}
return 0;
}
D. Powerful Ksenia
题意
给定一个 长度为 \(n\) 的序列 \(a\) ,能够选择三个数并把它们变成它们的异或和,求是否能把整个序列变成一样,或者无解,并给出方案。
思路
分奇偶来做。首先一个显然的性质是,形如 \(a,b,b\) 的方案能恰好同化一个 \(a\) .
当 \(n\) 为奇数时,每次任选三个数操作,并把其中两个配对;这样最后只会剩下一个不同的数,把这个和其他任意两个再做一遍,根据上面的性质,一定可以完成。
当 \(n\) 为偶数时,对于 \(n-1\) 进行同奇数一样的操作,如果所有数的异或和为 \(0\) (也就是最后一个恰好和之前的相等)那么就完成了;否则是无解。
代码
int main()
{
n=read(); int sum=0;
for ( int i=1; i<=n; i++ )
a[i]=read(),sum^=a[i];
if ( n%2==0 )
{
if (sum ) { printf( "NO\n" ); return 0; }
n--;
}
printf( "YES\n%d\n",n-2 );
for ( int i=1; i<=n-2; i+=2 )
printf( "%d %d %d\n",i,i+1,i+2 );
for ( int i=1; i<=n-4; i+=2 )
printf( "%d %d %d\n",i,i+1,n );
}
E. Yurii Can Do Everything
题意
如果一个子串是 good ,当且仅当它的头尾元素异或和等于中间元素异或和。求一个序列这样的子串个数。
思路
考虑一个满足条件的子串: \(a_l,a_{l+1},...,a_r\)
由题意得 \(a_l\oplus a_r=\sum_{i=l+1}^{r-1} a_i\) 。设 \(a_l,a_r\) 二进制中最高位为 \(k_l,k_r\) ,那么一定有 \(2^{max(k_l,k_r)+1}>\sum_{i=l+1}^{r-1} a_i\) ,所以正序逆序分别处理,并在不满足时直接跳出即可。
由于要处理正序和逆序两遍,所以每次只需要和 \(2^{k_l+1}\) 比较即可,否则会计算重复。
代码
void work( bool opt )
{
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;
if ( !opt )
{
for ( int j=i+2; j<=n; j++ )
{
if ( s==(a[i]^a[j]) ) ans++,mp[make_pair(n-j+1,n-i+1)]=1;
s+=a[j];
if ( s>=(1<<(k+1)) ) break;
}
}
else
{
for ( int j=i+2; j<=n; j++ )
{
if ( s==(a[i]^a[j]) && !mp.count({i,j}) ) ans++;
s+=a[j];
if ( s>=(1<<(k+1)) ) break;
}
}
}
}
Codeforces Round #682 Div2 简要题解的更多相关文章
- Educational Codeforces Round 80 A-E简要题解
contest链接:https://codeforces.com/contest/1288 A. Deadline 题意:略 思路:根据题意 x + [d/(x+1)] 需要找到一个x使得上式小于等于 ...
- CF Round #687 Div2 简要题解
题面 A 可以发现,最远的几个人一定是 \((1, 1), (1, m), (n, 1), (n, m)\) 中的一个,直接计算即可. B 注意到颜色数量很少,直接暴力枚举最终的颜色后模拟即可. C ...
- Codeforces Round #539 div2
Codeforces Round #539 div2 abstract I 离散化三连 sort(pos.begin(), pos.end()); pos.erase(unique(pos.begin ...
- Codeforces Round #182 (Div. 1)题解【ABCD】
Codeforces Round #182 (Div. 1)题解 A题:Yaroslav and Sequence1 题意: 给你\(2*n+1\)个元素,你每次可以进行无数种操作,每次操作必须选择其 ...
- 【前行】◇第3站◇ Codeforces Round #512 Div2
[第3站]Codeforces Round #512 Div2 第三题莫名卡半天……一堆细节没处理,改一个发现还有一个……然后就炸了,罚了一啪啦时间 Rating又掉了……但是没什么,比上一次好多了: ...
- Codeforces Round#320 Div2 解题报告
Codeforces Round#320 Div2 先做个标题党,骗骗访问量,结束后再来写咯. codeforces 579A Raising Bacteria codeforces 579B Fin ...
- Codeforces Round #608 (Div. 2) 题解
目录 Codeforces Round #608 (Div. 2) 题解 前言 A. Suits 题意 做法 程序 B. Blocks 题意 做法 程序 C. Shawarma Tent 题意 做法 ...
- Codeforces Round #525 (Div. 2)题解
Codeforces Round #525 (Div. 2)题解 题解 CF1088A [Ehab and another construction problem] 依据题意枚举即可 # inclu ...
- Codeforces Round #528 (Div. 2)题解
Codeforces Round #528 (Div. 2)题解 A. Right-Left Cipher 很明显这道题按题意逆序解码即可 Code: # include <bits/stdc+ ...
随机推荐
- high Performance
目的 找出系统性能瓶颈(包括硬件瓶颈和软件瓶颈): 提供性能优化的方案(升级硬件?改进系统系统结构?): 达到合理的硬件和软件配置: 使系统资源使用达到最大的平衡. CPU过渡使用会造成大量进程等待C ...
- 如何实现Http请求报头的自动转发[应用篇]
如今的应用部署逐渐向微服务化发展,导致一个完整的事务往往会跨越很多的应用或服务,出于分布式链路跟踪的需要,我们往往将从上游服务获得的跟踪请求报头无脑地向下游服务进行转发.本文介绍的这个名为Header ...
- 常见mysql后台线程
1.IO THREAD MySQL有很多后台线程 其中包括了负责IO的相关线程IO THREAD 1. 参数innodb_write_io_threads 写线程 默认四个,负责数据块的写入 2 ...
- JXLS2.4导出Excel
1.添加依赖:http://mvnrepository.com/artifact/org.jxls <dependency> <groupId>org.jxls< ...
- Python 自定义模块位置
1.需要找出Python解释器从哪里查找模块: 具体方法: >>> import sys,pprint>>> pprint.pprint(sys.path)['', ...
- day94:flask:Jinjia2模板引擎&flask中的CSRF攻击&Flask-SQLAlchemy的创建模型类和基本的增删改查
目录 1.Jinjia2模板引擎 1.Jinjia2加载模板并传递数据到模板中 2.Jinjia2的模板语句 3.模板中特有的变量和函数 4.模板中内置的过滤器 5.自定义过滤器 6.模板继承 2.在 ...
- mysql 重要日志文件总结
作者:丁仪 来源:https://chengxuzhixin.com/blog/post/mysql_zhong_yao_ri_zhi_wen_jian_zong_jie.html 日志是所有应用的重 ...
- 面试半年!三面阿里,四面蚂蚁金服,居然倒在了一个Java集合之Map上?
Map接口 Map与Collection并列存在.用于保存具有映射关系的数据:key-valueMap中的key和value都可以是任何引用类型的数据Map中的key用set来存放,不允许重复,即同一 ...
- Vegas教程分享,制作古装墨迹笔刷开场效果
许多酷炫的古装大片,片头曲介绍人物的时候,都有一种墨迹笔刷的开场效果,那么这个特效如何利用Vegas去做呢? 1.导入素材文件 首先呢,导入相关文件素材到视频制作软件Vegas中,点击页面上方如图1箭 ...
- 从这三方面优化你的电脑,保持Mac运行流畅
使用着Mac系统的用户都知道,Mac OS的各方面性能都很好,特别是流畅性,有人说不用清理垃圾也能流畅地使用Mac,但这的确是夸张了.电脑使用的时间长了,它的性能总会越来越退步,这其中有着系统垃圾拖累 ...