闲来无事,打场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的更多相关文章

  1. CF #376 (Div. 2) C. dfs

    1.CF #376 (Div. 2)    C. Socks       dfs 2.题意:给袜子上色,使n天左右脚袜子都同样颜色. 3.总结:一开始用链表存图,一直TLE test 6 (1)如果需 ...

  2. CF #375 (Div. 2) D. bfs

    1.CF #375 (Div. 2)  D. Lakes in Berland 2.总结:麻烦的bfs,但其实很水.. 3.题意:n*m的陆地与水泽,水泽在边界表示连通海洋.最后要剩k个湖,总要填掉多 ...

  3. CF #374 (Div. 2) D. 贪心,优先队列或set

    1.CF #374 (Div. 2)   D. Maxim and Array 2.总结:按绝对值最小贪心下去即可 3.题意:对n个数进行+x或-x的k次操作,要使操作之后的n个数乘积最小. (1)优 ...

  4. CF #374 (Div. 2) C. Journey dp

    1.CF #374 (Div. 2)    C.  Journey 2.总结:好题,这一道题,WA,MLE,TLE,RE,各种姿势都来了一遍.. 3.题意:有向无环图,找出第1个点到第n个点的一条路径 ...

  5. CF #371 (Div. 2) C、map标记

    1.CF #371 (Div. 2)   C. Sonya and Queries  map应用,也可用trie 2.总结:一开始直接用数组遍历,果断T了一发 题意:t个数,奇变1,偶变0,然后与问的 ...

  6. 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) ,问在每个区间里所有 ...

  7. 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 ...

  8. [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 ...

  9. CF#138 div 1 A. Bracket Sequence

    [#138 div 1 A. Bracket Sequence] [原题] A. Bracket Sequence time limit per test 2 seconds memory limit ...

随机推荐

  1. Linux/UNIX编程:实现简单 tee 命令

    思路很简单,从标准输入文件描述符读入数据,然后同时向标准输出和参数指定的文件写出数据:如果加了 -a 选项,则以追加的方式向文件写出数据.还没了解 getopt() 函数就没判断参数是否合法. #in ...

  2. 大牛给的ACM进阶建议

    转:https://blog.csdn.net/mmy1996/article/details/56011084 来自知乎 在他后面的回答中发现 不用IDE ,修炼内功挺好的,不过他和我的以前的那种 ...

  3. java13人机猜拳

    public class Demo01 { public static void main(String[] args) { /* * 你同桌和你要玩游戏. * 1 剪刀,2 石头,3 布 */ // ...

  4. ThinkPHP5.1学习笔记 数据库操作

    数据库 参见<Thinkphp5.1完全开发手册>学习 Mirror王宇阳 数据库连接 ThinkPHP采用内置抽象层对数据库操作进行封装处理:且基于PDO模式,可以适配各种数据库. 数据 ...

  5. ionic中的http,jsonp的使用

    要导入 import { HttpModule,JsonpModule } from '@angular/http'; 到app.module.ts       http,jsonp的区别 第一:在U ...

  6. 使用 GitHub Actions 实现 Hexo 博客自动部署

    一.Hexo 相关知识点 静态博客简单,但是发布博文时稍显麻烦,一般需要下面两步: hexo clean hexo g -d // 相当于 hexo g + hexo d 如果考虑到同步源文件,还需要 ...

  7. C#开源组件DocX版本区别点滴

    在C#中,需要处理Office Word文档时,由于MsOffice Com的版本局限性,所以选择不与本机MsOffice安装与否或安装版本相关的软件,以便软件或使用时的通用性与版权限制,特别是对于国 ...

  8. 网络设备 密码、用户级别 AAA授权 的管理

    一.进入 特权模式 密码 设置访问网络设备特权模式口令 cisco>enable cisco#config terminal cisco(config)#enable password 密码 e ...

  9. make: *** No targets specified and no makefile found. Stop.错误

    # make make: *** No targets specified and no makefile found. Stop. # yum install gcc gcc-c++ gcc-g77 ...

  10. Axer-使用Msfvenom自动创建有效负载的工具

    Axer-使用Msfvenom自动创建有效负载的工具 该axer将替换为有效的手动操作msfvenom,设置更容易和快了很多. AXER可以让您选择平台,格式,编码器,与另一个文件绑定以及许多其他功能 ...