CF #618 div.2
序
闲来无事,打场CF,本人蒟蒻,考场A了前三道,第四有解答
正文
T1 Non-zero
是道水题。。。。
给你一个序列a。要求你输出最少的操作次数使这个序列的累和与累乘都不为0;
一次操作指给\(a_i\)+1.
我们的想法是先给每个零的+1,检查此时和是否为0,若为0,+1,否则直接输出答案
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int Maxn=101;
int t,n,s,a[Maxn],sum;
int main() {
// freopen("a.in","r",stdin);
t=read();
while(t--){
n=read();s=0;sum=0;
for(int i=1;i<=n;i++){
a[i]=read();
sum+=a[i];
}
for(int i=1;i<=n;i++) if(a[i]==0) s++,sum++,a[i]++;//��֤ a[i]��Ϊ0
if(sum!=0) printf("%d\n",s);
else printf("%d\n",s+1);
}
return 0;
}
我把快读删了。。。有-的
T2 Assigning to Classes
我们注意到,差值事实上是两个数之差,而这两个数都为子数组中的中位数,所以这两个数\(a\),\(b\),不妨设\(a>b\) ,从而,\(a \ge p_{k+1}\),而\(b \le p_{k}\), 这是显然的。
从而,最小值之差即为\(p_{k+1}-p_{k}\),这是可以取到的
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int Maxn=2*1e5+111;
int t,a[Maxn],n;
int main() {
// freopen("a.in","r",stdin);
t=read();
while(t--){
n=read();
for(int i=1;i<=2*n;i++) a[i]=read();
sort(a+1,a+1+2*n);
printf("%d\n",a[n+1]-a[n]);
}
return 0;
}
T3 Anu Has a Function
我们注意到 ,事实上对于\(f(i,j)<i\),从而进一步的讨论,把每一个数分解为二进制,如果这些数而二进制的某位上1的个数超过1,则这一位的答案一定为0,所以我们只需要从最高位开始扫,扫到某一位只有一个一即可
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int Maxn=1e5+111;
int r[50],a[Maxn],n;
bool s[Maxn][50];
int main() {
// freopen("a.in","r",stdin);
n=read();
for(int i=1;i<=n;i++) {
a[i]=read();
int k=a[i];
for(int j=0;k>0;j++){
if(k&1) s[i][j]=1,r[j]++;
k>>=1;
}
}
int u=0;bool flag=1;
for(int j=50;j>=0&&flag;j--)
if(r[j]==1)
for(int i=1;i<=n;i++)
if(s[i][j]){
u=i;
flag=0;
break;
}
if(u!=0) printf("%d",a[u]);
for(int i=1;i<=n;i++) if(i!=u) printf(" %d",a[i]);
return 0;
}
T4 Aerodynamic
我们可以推出再若在\(P(x_0,y_0)\)中有两点\((x_1,y_1)\),和\((0,0)\),则必有\(P(x_0-x_1,y_0-y_1)\) 包含两点\((0,0)\),\((-x_1,-y_)\),从而我们可以得到T一定是中心对称的,只要我们检查P是否具有中心对称性即可
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int Maxn=1e5+111;
double x[Maxn],y[Maxn];
int n;
int main() {
// freopen("a.in","r",stdin);
n=read();
if(n&1){
printf("No");
return 0;
}
for(int i=1;i<=n;i++) scanf("%lf%lf",&x[i],&y[i]);
x[n+1]=(x[1]+x[n/2+1])/2;y[n+1]=(y[1]+y[n/2+1])/2;n/=2;
for(int i=2;i<=n;i++)
if(x[2*n+1]!=((x[i]+x[i+n])/2)||y[2*n+1]!=((y[i]+y[i+n])/2)){
printf("No");
return 0;
}
printf("YES");
return 0;
}
嵬
蒟蒻终能变为神犇
CF #618 div.2的更多相关文章
- CF #376 (Div. 2) C. dfs
1.CF #376 (Div. 2) C. Socks dfs 2.题意:给袜子上色,使n天左右脚袜子都同样颜色. 3.总结:一开始用链表存图,一直TLE test 6 (1)如果需 ...
- CF #375 (Div. 2) D. bfs
1.CF #375 (Div. 2) D. Lakes in Berland 2.总结:麻烦的bfs,但其实很水.. 3.题意:n*m的陆地与水泽,水泽在边界表示连通海洋.最后要剩k个湖,总要填掉多 ...
- CF #374 (Div. 2) D. 贪心,优先队列或set
1.CF #374 (Div. 2) D. Maxim and Array 2.总结:按绝对值最小贪心下去即可 3.题意:对n个数进行+x或-x的k次操作,要使操作之后的n个数乘积最小. (1)优 ...
- CF #374 (Div. 2) C. Journey dp
1.CF #374 (Div. 2) C. Journey 2.总结:好题,这一道题,WA,MLE,TLE,RE,各种姿势都来了一遍.. 3.题意:有向无环图,找出第1个点到第n个点的一条路径 ...
- CF #371 (Div. 2) C、map标记
1.CF #371 (Div. 2) C. Sonya and Queries map应用,也可用trie 2.总结:一开始直接用数组遍历,果断T了一发 题意:t个数,奇变1,偶变0,然后与问的 ...
- CF #365 (Div. 2) D - Mishka and Interesting sum 离线树状数组
题目链接:CF #365 (Div. 2) D - Mishka and Interesting sum 题意:给出n个数和m个询问,(1 ≤ n, m ≤ 1 000 000) ,问在每个区间里所有 ...
- CF #365 (Div. 2) D - Mishka and Interesting sum 离线树状数组(转)
转载自:http://www.cnblogs.com/icode-girl/p/5744409.html 题目链接:CF #365 (Div. 2) D - Mishka and Interestin ...
- [CF百场计划]#2 Codeforces Round #618 (Div. 2)
A. Non-zero Description: Guy-Manuel and Thomas have an array \(a\) of \(n\) integers [\(a_1, a_2, \d ...
- CF#138 div 1 A. Bracket Sequence
[#138 div 1 A. Bracket Sequence] [原题] A. Bracket Sequence time limit per test 2 seconds memory limit ...
随机推荐
- PE可执行文件加载器
PE文件加载器 模仿操作系统,加载pe文件到内存中 该项目主要是为了检测pe的学习程度,是否都完全理解了.当然没有完全理解 实现功能的如下: 模仿操作系统,加载pe文件到内存中,然后执行待执行的pe文 ...
- ATL的GUI程序设计(3)
第三章 ATL的窗口类 CWindowImpl.CWindow.CWinTraits,ATL窗口类的奥秘尽在此三者之中.在本章里,李马将为你详细解说它们的使用方法.另外,本章的内容也可以算是本书的核心 ...
- 二、UDP
1 端口号 在计算机网络和电磁信号理论中,对共享同一通信信道的多个信号进行区分是个常见的问题.多路复用(multiplexing)就是允许多个会话共享同一介质或机制的一种解决方案. 使用不同的频率来区 ...
- RUST actix-web连接有密码的Redis数据库
RUST actix-web连接有密码的Redis数据库 actix-web的example里面,使用了自己的actix-redis,但是我尝试了一下,并不好用 替换成另一连接池,deadpool-r ...
- Mutual Information
Mutal Information, MI, 中文名称:互信息. 用于描述两个概率分布的相似/相关程度. 常用于衡量两个不同聚类算法在同一个数据集的聚类结果的相似性/共享的信息量. 给定两种聚类结果\ ...
- 机器学习总结-sklearn参数解释
本文转自:lytforgood 机器学习总结-sklearn参数解释 实验数据集选取: 1分类数据选取 load_iris 鸢尾花数据集 from sklearn.datasets import lo ...
- HDU_3183_RMQ
http://acm.hdu.edu.cn/submit.php?pid=3183 初探rmq,这道题看了题解还是写了好久.原因是rmq处理字符串时没有自己写min函数,导致把返回的字符当成下标处理了 ...
- Java7循环结构综合练习
import java.util.Scanner; public class jh_01_学员操作_选择游戏 { public static void main(String[] args) { Sc ...
- ntp时间服务器 时间同步
具体两种模式 1.服务器数量比较少,可以直接与时间服务器同步 2.本地服务器较多,在本地自建时间同步服务器, 时间同步的两个命令 ntpd : 校准时间,一点点的校准过来时间的 ...
- CentOS7下部署rsync服务
说明: 在CentOS7下部署rsync服务和在CentOS6上部署基本上是一样的,只是CentOS7自带了rsyncd启动脚本,由systemd管理而已. rsync服务端配置 [root@SERV ...