Codeforces Round #682 (Div. 2)
CF1438A Specific Tastes of Andre
代码(全铺成1就可以了)
#include <cstdio>
#include <cctype>
#define rr register
using namespace std;
inline signed iut(){
rr int ans=0; rr char c=getchar();
while (!isdigit(c)) c=getchar();
while (isdigit(c)) ans=(ans<<3)+(ans<<1)+(c^48),c=getchar();
return ans;
}
inline void print(int ans){
if (ans>9) print(ans/10);
putchar(ans%10+48);
}
signed main(){
for (rr int T=iut();T;--T,putchar(10)){
for (rr int n=iut();n;--n)
putchar(49),putchar(32);
}
return 0;
}
CF1438B Valerii Against Everyone
分析
如果不存在两个数相同,那么就不可能产生进位,相加之后也不一样。
如果存在两个数相同,那答案就是这两个数所在的区间 \([i,i]\) 和 \([j,j]\)
代码
#include <cstdio>
#include <cctype>
#include <map>
#define rr register
using namespace std;
int n,flag; map<int,bool>uk;
inline signed iut(){
rr int ans=0; rr char c=getchar();
while (!isdigit(c)) c=getchar();
while (isdigit(c)) ans=(ans<<3)+(ans<<1)+(c^48),c=getchar();
return ans;
}
inline void print(int ans){
if (ans>9) print(ans/10);
putchar(ans%10+48);
}
signed main(){
for (rr int T=iut();T;--T){
n=iut(),uk.clear(),flag=0;
for (rr int i=1,x;i<=n;++i)
if (uk[x=iut()]) {
if (!flag) puts("YES");
flag=1;
}else uk[x]=1;
if (!flag) puts("NO");
}
return 0;
}
CF1438C Engineer Artem
分析
直接对矩阵黑白染色,黑色放奇数,白色放偶数即可
反正考场上没想到QAQ
代码
#include <iostream>
using namespace std;
int T,n,m;
int main(){
ios::sync_with_stdio(0);
for (cin>>T;T;--T){
cin>>n>>m;
for (int i=1;i<=n;++i,cout<<endl)
for (int j=1;j<=m;++j){
int x; cin>>x;
if ((i^j^x)&1) cout<<x+1<<" ";
else cout<<x<<" ";
}
}
return 0;
}
CF1438D Powerful Ksenia
分析
有一些性质:异或前后异或和不变;如果有两个数 \(a_j,a_k\) 相同,那么 \(a_i,a_j,a_k\) 异或之后全部变成 \(a_i\)。
那么给两两配对,如果序列长度为奇数意味着可以先用 \(\frac{n-1}{2}\) 次将配对的数变为相同的数,
再用 \(\frac{n-1}{2}\) 次将所有数变相同。
否则序列长度为偶数有解当且仅当所有数异或和为0,这样只对前 \(n-1\) 个数操作第 \(n\) 个数会自动相同
代码
#include <iostream>
using namespace std;
int n,sum;
int main(){
ios::sync_with_stdio(0);
cin>>n;
for (int i=1;i<=n;++i){
int x; cin>>x,sum^=x;
}
if (!(n&1)&&sum) cout<<"NO";
else{
cout<<"YES"<<endl<<n-2+(n&1)<<endl;
for (int i=2;i<n;i+=2) cout<<1<<" "<<i<<" "<<i+1<<endl;
for (int i=2;i<n;i+=2) cout<<1<<" "<<i<<" "<<i+1<<endl;
}
return 0;
}
CF1438E Yurii Can Do Everything
分析
考虑 \(O(n^2)\) (bushi
因为总和肯定会增大,所以考虑以左端点为基准或者以右端点为基准,
当增大到 \(2^{mx[i]+1}\) 时异或值一定不相等,退出循环。
这样看时间貌似是差不多的,但是如果考虑枚举 \(mx[i]\) 的话,每个位置最多被访问两次。
所以时间复杂度为 \(O(n\log \max\{a_i\})\)
代码
#include <iostream>
#include <set>
using namespace std;
const int N=34011;
int n,mx[N],a[N*6],bit[N*6]; set<pair<int,int> >ans;
int main(){
ios::sync_with_stdio(0);
cin>>n;
for (int i=0;i<15;++i)
for (int j=(1<<i);j<(1<<(i+1));++j)
mx[j]=i+1;
for (int i=1;i<=n;++i){
cin>>a[i];
if (!(a[i]>>15)) bit[i]=mx[a[i]];
else bit[i]=15+mx[a[i]>>15];
}
for (int i=1;i<n-1;++i){
int sum=a[i+1];
for (int j=i+2;j<=n;++j){
if (sum>=(1<<bit[i])) break;
if ((a[i]^a[j])==sum) ans.insert(make_pair(i,j));
sum+=a[j];
}
}
for (int j=n;j>2;--j){
int sum=a[j-1];
for (int i=j-2;i;--i){
if (sum>=(1<<bit[j])) break;
if ((a[i]^a[j])==sum) ans.insert(make_pair(i,j));
sum+=a[i];
}
}
cout<<ans.size();
return 0;
}
CF1438F Olha and Igor
分析
如果把这种题放考场可能还是不会做QWQ
这道题最妙的就是用420次随机三个点,
就可以知道根节点的两个子节点。
然后再用 \(n\) 次判断根节点即可,证明也不会。
反正随机题都挺玄学的
代码
#include <iostream>
#include <algorithm>
using namespace std;
const int N=300011;
int n,h,rk[N],c[N];
bool cmp(int x,int y){return c[x]>c[y];}
int main(){
ios::sync_with_stdio(0);
cin>>h,n=(1<<h)-1,srand(33333331);
for (int i=1;i<=n;++i) rk[i]=i;
for (int i=1;i<421;++i){
int x=(rand()*rand()+rand())%n+1,y=(rand()*rand()+rand())%n+1,rt=(rand()*rand()+rand())%n+1;
while (x==y) y=(rand()*rand()+rand())%n+1;
while (rt==x||rt==y) rt=(rand()*rand()+rand())%n+1;
cout<<"? "<<x<<" "<<y<<" "<<rt<<endl;
cin>>x; ++c[x];
}
sort(rk+1,rk+1+n,cmp);
for (int i=1;i<=n;++i)
if (i!=rk[1]&&i!=rk[2]){
cout<<"? "<<rk[1]<<" "<<rk[2]<<" "<<i<<endl;
int x; cin>>x;
if (x==i){
cout<<"! "<<x<<endl;
return 0;
}
}
return 0;
}
Codeforces Round #682 (Div. 2)的更多相关文章
- Codeforces Round #682 (Div. 2)【ABCD】
比赛链接:https://codeforces.com/contest/1438 A. Specific Tastes of Andre 题意 构造一个任意连续子数组元素之和为子数组长度倍数的数组. ...
- Codeforces Round #682 (Div. 2) C. Engineer Artem (构造)
题意:给你一个\(n\)x\(m\)的矩阵,你可以任意位置的元素+1,只能加一次,问你如何使得任意位置的元素不等于它四周的值.输出操作后的矩阵. 题解:构造,矩阵中某两个下标的和的奇偶性一定和四周的都 ...
- Codeforces Round #682 (Div. 2) B. Valerii Against Everyone (思维)
题意:给你一组数\(b\),对于每个\(b_i\),相对应的\(a_i=2^{b_i}\),问你是否能找出两个不相交的区间,使得两个区间的\(a_i\)的元素和相等. 题解:对于任意一个\(2^k\) ...
- Codeforces Round #366 (Div. 2) ABC
Codeforces Round #366 (Div. 2) A I hate that I love that I hate it水题 #I hate that I love that I hate ...
- Codeforces Round #354 (Div. 2) ABCD
Codeforces Round #354 (Div. 2) Problems # Name A Nicholas and Permutation standard input/out ...
- Codeforces Round #368 (Div. 2)
直达–>Codeforces Round #368 (Div. 2) A Brain’s Photos 给你一个NxM的矩阵,一个字母代表一种颜色,如果有”C”,”M”,”Y”三种中任意一种就输 ...
- cf之路,1,Codeforces Round #345 (Div. 2)
cf之路,1,Codeforces Round #345 (Div. 2) ps:昨天第一次参加cf比赛,比赛之前为了熟悉下cf比赛题目的难度.所以做了round#345连试试水的深浅..... ...
- Codeforces Round #279 (Div. 2) ABCDE
Codeforces Round #279 (Div. 2) 做得我都变绿了! Problems # Name A Team Olympiad standard input/outpu ...
- Codeforces Round #262 (Div. 2) 1003
Codeforces Round #262 (Div. 2) 1003 C. Present time limit per test 2 seconds memory limit per test 2 ...
- Codeforces Round #262 (Div. 2) 1004
Codeforces Round #262 (Div. 2) 1004 D. Little Victor and Set time limit per test 1 second memory lim ...
随机推荐
- win32 - 写入安全日志(AuthzRegisterSecurityEventSource和AuthzReportSecurityEvent)
微软文档介绍说, 安全日志在其他两个重要方面与其他日志不同.首先,在默认配置中,它受到强大的访问控制列表(ACL)和特权检查的保护,这将可以读取其内容的个人的范围限制为本地系统,管理员和安全特权的持有 ...
- 亲测CentOS 8.2更换yum源报错Errors during downloading metadata for repository 'epel': - Status code解决办法
重点 提一件拉胯的事:别去参考阿里和华为云官方镜像上面的解决办法,本人试了几遍,没luan用.拉胯!!!!!!!! 报错具体信息 Errors during downloading metadata ...
- 进程之间共享数据Manager,线程相关使用Thread,用类定义线程,守护线程setDaemon,线程锁Lock,线程信号量Semaphore---day32
1.Manager # ### Manager (list列表,dict字典)进程之间的共享数据(列表或字典等) from multiprocessing import Process,Manager ...
- 【MongoDB】MongoDB原理分析、集群搭建(Docker)与简单使用
一.MongoDB 简介 MongoDB是一个基于分布式文件存储的数据库,介于关系数据库和非关系数据库之间,是非关系数据库当中功能最丰富,最像关系数据库的.其目的是为WEB应用提供可扩展的高性能数据存 ...
- 【Java复健指南13】OOP高级04【告一段落】-四大内部类
四大内部类 一个类的内部又完整的嵌套了另一个类结构. class Outer{ //外部类 class lnner{ //内部类 } } class Other{//外部其他类 } 被嵌套的类称为内部 ...
- 【LeetCode二叉树#05】平衡二叉树
力扣题目链接(opens new window)](https://leetcode.cn/problems/balanced-binary-tree/) 给定一个二叉树,判断它是否是高度平衡的二叉树 ...
- 在MATPool矩池云完成Pytorch训练MNIST数据集
本文为矩池云入门手册的补充:Pytorch训练MNIST数据集代码运行过程. 案例代码和对应数据集,以及在矩池云上的详细操作可以在矩池云入门手册中查看,本文基于矩池云入门手册,默认用户已经完成了机器租 ...
- 【Azure Developer】使用MSAL4J 与 ADAL4J 的SDK时候,遇见了类型冲突问题 "java.util.Collections$SingletonList cannot be cast to java.lang.String"
问题描述 在博文 "[Azure Developer]使用 Powershell az account get-access-token 命令获取Access Token (使用用户名+密码 ...
- 如何运维多集群数据库?58 同城 NebulaGraph Database 运维实践
图计算业务背景介绍 我们为什么选择 NebulaGraph? 在公司各个业务线中,有不少部门都有着关系分析等图探索场景,随着业务发展,相关的需求越来越多.大量需求使用多模数据库来实现,开发成本和管理成 ...
- vmware虚拟机出现此电脑无法运行win11,虚拟机中安装win11系统教程
一.点击新建虚拟机 二.选择自定义安装 三.默认 四.选择win11镜像 五.选择windows 六.命名 七.勾选安全引导 八.两个处理器即可 九.最低4G内存,接下来一直默认点下一步即可 十.创建 ...