Contest link

A.Specific Tastes of Andre

Problem link

题意

构造一个长度为 \(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

Problem link

题意

给定一个长度为 \(n(n\leq 1000)\) 的序列 \(b(b_i\leq 1e9)\) ,定义 \(a_i=2^{b_i}\) ,问 \(a\) 中是否存在两个不相交子序列的和一样。

思路

不相交首先是没用的;因为相交就把中间部分去掉即可。

如果两个串的和相等,

  1. 如果两个串不是完全等价,那么一定存在二进制中的进位,也就是必定存在两个元素相等,选这两个即可;

  2. 如果完全等价,那么显然存在两个元素相等。

所以 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

Problem link

题意

给定一个 \(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

Problem link

题意

给定一个 长度为 \(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

Problem link

题意

如果一个子串是 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 简要题解的更多相关文章

  1. Educational Codeforces Round 80 A-E简要题解

    contest链接:https://codeforces.com/contest/1288 A. Deadline 题意:略 思路:根据题意 x + [d/(x+1)] 需要找到一个x使得上式小于等于 ...

  2. CF Round #687 Div2 简要题解

    题面 A 可以发现,最远的几个人一定是 \((1, 1), (1, m), (n, 1), (n, m)\) 中的一个,直接计算即可. B 注意到颜色数量很少,直接暴力枚举最终的颜色后模拟即可. C ...

  3. Codeforces Round #539 div2

    Codeforces Round #539 div2 abstract I 离散化三连 sort(pos.begin(), pos.end()); pos.erase(unique(pos.begin ...

  4. Codeforces Round #182 (Div. 1)题解【ABCD】

    Codeforces Round #182 (Div. 1)题解 A题:Yaroslav and Sequence1 题意: 给你\(2*n+1\)个元素,你每次可以进行无数种操作,每次操作必须选择其 ...

  5. 【前行】◇第3站◇ Codeforces Round #512 Div2

    [第3站]Codeforces Round #512 Div2 第三题莫名卡半天……一堆细节没处理,改一个发现还有一个……然后就炸了,罚了一啪啦时间 Rating又掉了……但是没什么,比上一次好多了: ...

  6. Codeforces Round#320 Div2 解题报告

    Codeforces Round#320 Div2 先做个标题党,骗骗访问量,结束后再来写咯. codeforces 579A Raising Bacteria codeforces 579B Fin ...

  7. Codeforces Round #608 (Div. 2) 题解

    目录 Codeforces Round #608 (Div. 2) 题解 前言 A. Suits 题意 做法 程序 B. Blocks 题意 做法 程序 C. Shawarma Tent 题意 做法 ...

  8. Codeforces Round #525 (Div. 2)题解

    Codeforces Round #525 (Div. 2)题解 题解 CF1088A [Ehab and another construction problem] 依据题意枚举即可 # inclu ...

  9. Codeforces Round #528 (Div. 2)题解

    Codeforces Round #528 (Div. 2)题解 A. Right-Left Cipher 很明显这道题按题意逆序解码即可 Code: # include <bits/stdc+ ...

随机推荐

  1. 03 原型模式(prototype)

    03 原型模式(prototype) 1 克隆羊问题 现在有一只羊tom,姓名为: tom.年龄为: 1,颜色为:白色,请编写程序创建和tom羊属性完全相同的10只羊. 2 传统方式解决 思路 cla ...

  2. ceph在centos7下一个不容易发现的改变

    在centos6以及以前的osd版本,在启动osd的时候,回去根据ceph.conf的配置文件进行挂载osd,然后进行进程的启动,这个格式是这样的 [osd.0] host = hostname de ...

  3. Python_Tips_dump\load 和 dumps\loads 的区别与联系

    dump\load  和 dumps\loads 的区别与联系 """ Python3 JSON模块的使用 参考链接:https://docs.python.org/3/ ...

  4. IAR设置字体

    1.IAR设置字体 第一种方法可以在IDE环境下,选择Tools -> option -> Editor - > Colors and Fonts,然后右边的Editor Font就 ...

  5. Linux内核剖析——操作系统的启动

    一.总体功能 1.从通电到BIOS跳转 1.1 CPU在通电后,先进入实模式,设置CS=0XFFFF,IP = 0X0000(指向BIOS) 1.2 BIOS进行执行系统监测,并且在地址=0处初始化中 ...

  6. 通过shodan搜索相同favicon.ico的网站

    0x01 根据favicon.ico生成hash python2,想改python3折腾了半天不得 import mmh3 import requests response = requests.ge ...

  7. property,类方法和静态方法

    # from math import pi # # class Circle: # def __init__(self, r): # self.r = r # # @property # def pe ...

  8. 你了解ABBYY FineReader 14么?

    有没有一款是能够同时处理纸质文档和个类型PDF的一站式解决方案?答案是肯定的,ABBYY FineReader 14集合了强大的光学字符识别(OCR)以及 PDF 查看和编辑功能.不仅能够高效识别图片 ...

  9. Sound Forge批量转换音频格式,实现高效编辑音频

    Sound Forge的批量处理功能可以实现批量格式转换.批量添加效果等功能,让用户可以在处理其他音频编辑任务的同时,自动完成格式转换.效果添加等重复性任务.接下来,一起来看看如何借助批处理转换器实现 ...

  10. 如何合理利用iMindMap中的模板创建思维导图

    思维导图的制作并不是一项简单的工作,尤其是对许多工作或学习有特殊要求的朋友而言,当我们需要应对不同场景制作不同的思维导图时,总不能都靠自己从头制作,这样难度比较大也比较耗时.而iMindMap(win ...