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. python像matlab类似的符号函数绘图

    matplotlib 绘图之前需要先定义数据范围,python 有一个 sympy 包,类似 matlab 里面的符号函数,可以用来进行二维和三维的图像绘制, from sympy.plotting ...

  2. jdk包结构及用途分析

    Table of Contents 概述 jdk包总览 rt.jar包结构分析 概述 jdk是每一个使用java的人员每一天都在使用的东西,博主也已经研究了jdk源代码中的一些类了,本篇博客是想从jd ...

  3. explain命令---查看mysql执行计划

    引言: 实际项目开发中,由于我们不知道实际查询的时候数据库里发生了什么事情,数据库软件是怎样扫描表.怎样使用索引的,因此,我们能感知到的就只有 sql语句运行的时间,在数据规模不大时,查询是瞬间的,因 ...

  4. 卸载python安装的软件

    python源码安装的软件是无法通过命令卸载的,这个可以通过记录安装过程的形式来卸载安装的软件 以 python2.7.2 为例,在这个目录中有一个 setup.py 的文件,很显然这是安装程序,还是 ...

  5. python-网络安全编程第四天(数据库编程&网络编程)

    前言 好几天没更因为寒假放假回家放松了几天 嘿嘿 今天继续开始启动学习模式. python数据库编程 Python DB API访问数据库流程 Python DB API包含的内容 什么是 PyMyS ...

  6. springboot实战开发全套教程,让开发像搭积木一样简单!Github星标已上10W+!

    前言 先说一下,这份教程在github上面星标已上10W,下面我会一一给大家举例出来全部内容,原链接后面我会发出来!首先我讲一下接下来我们会讲到的知识和技术,对比讲解了多种同类技术的使用手日区别,大家 ...

  7. 使用Camtasia制作游戏直播高能短视频

    随着电竞行业的兴起,很多主播都开始做起游戏直播.对于喜欢打游戏的朋友来说,观看游戏直播既可以提高游戏的技术,也能作为下班后的休闲娱乐.对于喜欢钻研游戏技术的朋友,制作一个游戏高能合集能也是一件很燃的事 ...

  8. lca(lowestCommonAncestor)

  9. UIWebView各种加载网页的方式

    UIWebView加载网页的方法 最近在使用UIWebView的时候遇到各种不同形式加载网页的方式,总结起来共有三种方式,分别为:使用URL加载,使用HTML源码加载,使用HTML文件加载,各种方法的 ...

  10. centons 7 安装mysql

    1      CentOS 7 yum安装mysql 1.1    Yum 安装mysql CentOS用yum安装相对省事,省去很多配置环节 安装mysql 源 yum localinstall h ...