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+ ...
随机推荐
- 为什么人们总是认为epoll 效率比select高!!!!!!
今天看公司代码时,发现代码里面使用的事清一色的代码使用epoll, 所以就得说一说了:宏观看一看epoll 和select的实现: select原理概述 调用select时,会发生以下事情: 从用户空 ...
- python 迭代器(转)
迭代器 迭代器是在python2.2中被加入的,它为类序列对象提供了一个类序列的接口.有了迭代器可以迭代一个不是序列的对象,因为他表现出了序列的行为.当在python中使用for循环迭代一个对象时,调 ...
- 储存与RAID--独立磁盘阵列
存储: 专门用来插硬盘的机器,作用是增加插口,可以多插硬盘. 这种有策略保证硬盘坏了,数据不丢.而本地磁盘坏了,会导致数据丢失,故一般操作系统放在本地磁盘.而数据放在存储盘. 存储里依然有:cpu( ...
- Ceph 状态报警告 pool rbd has many more objects per pg than average (too few pgs?)
定位问题 [root@lab8106 ~]# ceph -s cluster fa7ec1a1-662a-4ba3-b478-7cb570482b62 health HEALTH_WARN pool ...
- ListView的HeaderView包含的GridView滑动隐藏后无法点击问题分析
目录 1 现象 2 问题分析 2.1 滑动前 2.2 滑动后 2.3 mDataChanged赋值为true的位置 2.3 GridView直接作为ListView的HeaderView为什么可以滑动 ...
- linx mysql安装
文章引用:https://www.cnblogs.com/shizhongyang/p/8464876.html 只做了少量修改,感谢博主 注:未防止混淆,这里都用绝对路径执行命令 除了文件内容中的# ...
- mysql_用命令行备份数据库
MySQL数据库使用命令行备份|MySQL数据库备份命令 例如: 数据库地址:127.0.0.1 数据库用户名:root 数据库密码:pass 数据库名称:myweb 备份数据库到D盘跟目录 mysq ...
- ccpc2020长春站F题 Strange Memory
dsu on tree 题目链接 点我跳转 题目大意 给定一棵包含 \(n\) 个节点的树,每个节点有个权值 \(a_i\) 求\(∑_{i=1}^n∑_{j=i+1}^n[a_i⊕a_j=a_{lc ...
- FL studio系列教程(十八):FL Studio输出监视面板讲解
在FL Studio编曲制作软件中输出监视器面板主要的功能是监视输出电平和波形以及频谱.下面大家就跟小编一起来认识下什么是FL Studio监视面板以及它的一些特征吧! 1.首先,我们来看一下输出监视 ...
- jQuery 第三章 CSS操作
.css() .attr() .prop() .css() 参数填法:如下所示 ↓ 可填px 可不填,注意点:background-color 这类属性,需要填成 小驼峰式 background ...