Codeforces Round #669 (Div. 2)A-C题解
A. Ahahahahahahahaha
题目:http://codeforces.com/contest/1407/problem/A
题解:最多进行n/2的操作次数,我们统计这n个数中1的个数,是否过半,如果没有代表0过半,因此输出剩余的0的个数即可
如果1的个数过半,则考虑1的个数是奇数还是偶数,若为奇数,则再减去一个输出;若为偶数个,则直接输出。
代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll; int main()
{
int t,n,i,j;
cin>>t;
while(t--)
{
cin>>n;
int num=;
for(i=;i<=n;i++)
{
int x;
cin>>x;
if(x==)
num++;
}
if(num<=n/)
{
cout<<n/<<endl;
for(int j=;j<=n/;j++)
cout<<""<<" ";
cout<<endl;
}
else
{
if(num%==)
{
cout<<num<<endl;
for(int j=;j<=num;j++)
cout<<""<<" ";
cout<<endl;
}
else
{
cout<<num-<<endl;
for(int j=;j<=num-;j++)
cout<<""<<" ";
cout<<endl;
}
}
}
return ;
}
B. Big Vova
题目:http://codeforces.com/contest/1407/problem/B
题解:首先挑选出最大的作为第一个,将其与第一个数互换位置,然后开始从第二位一直到第n位,遍历求出当前最大的gcd,并记录相应的下标,然后和第二到第n位交换位置,最多执行n-1次。
最后输出数组即可。
代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll; int t,n,a[];
int gcd(int a,int b)
{
return b==?a:gcd(b,a%b);
} int main()
{
int i,j,maxn;
cin>>t;
while(t--)
{
cin>>n;
int f;
int maxn=-;
for(i=;i<n;i++)
{
cin>>a[i];
if(a[i]>maxn)
{
maxn=a[i];
f=i;
}
}
swap(a[f],a[]);
int cnt=;
while(cnt<n)
{
int maxgcd=-;
int p;
for(i=cnt;i<n;i++)
{
if(gcd(maxn,a[i])>maxgcd)
{
maxgcd=gcd(maxn,a[i]);
p=i;
}
}
swap(a[cnt],a[p]);
maxn=maxgcd;
cnt++;
}
for(i=;i<n;i++)
cout<<a[i]<<" ";
cout<<endl;
}
return ;
}
C. Chocolate Bunny
题目:http://codeforces.com/contest/1407/problem/C
题解:这是一道交互题,以前没碰到过,也好理解。
可以询问 2×n2×n 次,每次给出两个不同的索引 i 和 j,会返回 ai%aj的值。
询问i和j,假设ai>aj,那结果为ai%aj=x<aj
再询问j和i,结果为aj%ai=y=aj
因此aj=y;并将y这个值用map标记,mp[y]=1
反之,若ai<aj,询问i和j,结果为ai%aj=x=ai
再询问j和i,结果为aj%ai=y<ai
因此ai=x,并将x用map标记,mp[x]=1;
最后遍历完整个数组后,还剩下一个,遍历数组找到mp还未标记的那个数,即为最终的a[f]的值
最后输出数组即可。
代码:
#include<bits/stdc++.h>
using namespace std; const int N=;
int x,y,n;
int a[N];
map<int,int>mp;
int main()
{
int i,j;
cin>>n;
int f=;
for(i=;i<=n;i++)
{
cout<<"? "<<f<<" "<<i<<endl;
cin>>x;
cout<<"? "<<i<<" "<<f<<endl;
cin>>y;
if(x>y)
{
a[f]=x;
mp[x]=;
f=i;
}
else
{
a[i]=y;
mp[y]=;
}
}
for(i=;i<=n;i++)
{
if(mp[i]==)
continue;
a[f]=i;
break;
}
cout<<"!";
for(i=;i<=n;i++)
cout<<" "<<a[i];
return ;
}
Codeforces Round #669 (Div. 2)A-C题解的更多相关文章
- Codeforces Round #612 (Div. 2) 前四题题解
这场比赛的出题人挺有意思,全部magic成了青色. 还有题目中的图片特别有趣. 晚上没打,开virtual contest打的,就会前三道,我太菜了. 最后看着题解补了第四道. 比赛传送门 A. An ...
- Codeforces Round #198 (Div. 2)A,B题解
Codeforces Round #198 (Div. 2) 昨天看到奋斗群的群赛,好奇的去做了一下, 大概花了3个小时Ak,我大概可以退役了吧 那下面来稍微总结一下 A. The Wall Iahu ...
- Codeforces Round #672 (Div. 2) A - C1题解
[Codeforces Round #672 (Div. 2) A - C1 ] 题目链接# A. Cubes Sorting 思路: " If Wheatley needs more th ...
- Codeforces Round #669 (Div. 2) C. Chocolate Bunny 题解(交互)
题目链接 题目大意 有一个长度为n的全排列,你可以询问2n次,要你经过这个2n次的询问后,求出这个全排列 询问定义为:输入"? i j"输出\(p_{i} mod p_{j}\) ...
- Codeforces Round #614 (Div. 2) A-E简要题解
链接:https://codeforces.com/contest/1293 A. ConneR and the A.R.C. Markland-N 题意:略 思路:上下枚举1000次扫一遍,比较一下 ...
- Codeforces Round #610 (Div. 2) A-E简要题解
contest链接: https://codeforces.com/contest/1282 A. Temporarily unavailable 题意: 给一个区间L,R通有网络,有个点x,在x+r ...
- Codeforces Round #611 (Div. 3) A-F简要题解
contest链接:https://codeforces.com/contest/1283 A. Minutes Before the New Year 题意:给一个当前时间,输出离第二天差多少分钟 ...
- Codeforces Round #499 (Div. 2) D. Rocket题解
题目: http://codeforces.com/contest/1011/problem/D This is an interactive problem. Natasha is going to ...
- Codeforces Round #499 (Div. 2) C Fly题解
题目 http://codeforces.com/contest/1011/problem/C Natasha is going to fly on a rocket to Mars and retu ...
随机推荐
- 再见HTML ! 用纯Python就能写一个漂亮的网页
我们在写一个网站或者一个网页界面的时候,需要学习很多东西,对小白来说很困难!比如我要做一个简单的网页交互: 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在 ...
- Spring JdbcTemplate中关于RowMapper的使用实例
在spring boot 集成使用jdbctemplate,首先在pom文件中引入相应的依赖 <dependency> <groupId>org.springframework ...
- VSFTP问题解决
支持 root 登录 在 /etc/vsftpd/{ftpusers,user_list} 中注释掉 root 添加 allow_writeable_chroot=YES, 允许在只读文件登录, 否则 ...
- 6、Java 运算符
Java运算符按功能可分为:算数运算符.关系运算符.逻辑运算符.位运算符.赋值运算符和条件运算符. 1.算数运算符 算术运算符包括通常的加(+).减(-).乘(*).除(/).取模(%),完成整数型和 ...
- 制作的excel表格如何放到微信公众号文章中?
制作的excel表格如何放到微信公众号文章中? 我们都知道创建一个微信公众号,在公众号中发布一些文章是非常简单的,但公众号添加附件下载的功能却被限制,如今可以使用小程序“微附件”进行在公众号中添加附件 ...
- 在龙芯mips64el平台编译bmon
bmon 是一个 实时命令行流量监控软件,但作者在github并没有提供mips64el的版本.下面记录一下编译过程.可以在这里下载bmon.v4.0.linux-mips64el.tar.gz. 环 ...
- 基于OpenSIPS做注册服务下,场景A打B,一方发起BYE挂断后收到500,另一方无法挂断的问题
基于OpenSIPS做注册服务下,场景A打B,一方发起BYE挂断后收到500,另一方无法挂断的问题 最近在工作中遇到一个看似很奇怪的,排除起来很费劲,但最后的解决方式又及其简单的问题,下面我们 ...
- arcgis api for js 之网络分析服务发布
1.引言 百度地图上有这样的功能:点击两个点,地图上会显示对两个点的路径规划.这个功能能否利用 arcgis api 实现呢?答案是肯定的.不过在实现之前,我们需要将数据发布为网络分析服务,接下来我将 ...
- OpenCV常用图像拼接方法(一) :直接拼接
OpenCV常用图像拼接方法将分为四部分与大家分享,这里是第一种方法,欢迎关注后续. OpenCV常用图像拼接方法(一) :直接拼接,俗称硬拼,就是简单的将两张图片合并成一张大图. 方法比较简单,这里 ...
- 同步博客到cnblogs平台
缘由 最最开始在csdn写博客,广告太多,平台暗调资源积分,退:后来使用githubpage+jeklly搭建静态博客,感觉不错,回归到安静的敲打环境.emmmm,由于是静态博客项目,虽能最大化自定义 ...