博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
比赛总结——atcoder beginner contest 109
阅读量:5890 次
发布时间:2019-06-19

本文共 2719 字,大约阅读时间需要 9 分钟。

第一次AK的ABC

虽然题非常简单

但是值得纪念一下

T1

一道很水的题

不存在做法

纯粹乱跑

但是我把Yes打成YES了,哭唧唧

#include 
#include
#include
using namespace std;int main(){ int a,b; scanf("%d %d",&a,&b); if((1*a*b)%2==1||(2*a*b)%2==1||(3*a*b)%2==1) printf("Yes\n"); else printf("No\n"); return 0;}

T2

就是普通的判重和模拟

stl真好用

#include 
#include
#include
#include
#include
#include
using namespace std;int n;set
s;string a;char lat;int main(){ scanf("%d",&n); for(int i=1;i<=n;i++){ cin>>a; if(s.count(a)){ printf("No\n"); return 0; } if(i>1&&a[0]!=lat){ printf("No\n"); return 0; } lat=a[a.length()-1]; s.insert(a); } printf("Yes\n"); return 0;}

T3

有趣的GCD应用

秒掉

#include 
#include
#include
#define int long longusing namespace std;int n,x,pos[110000];int gcd(int a,int b){ return (b==0)?a:gcd(b,a%b);}signed main(){ scanf("%lld %lld",&n,&x); for(int i=1;i<=n;i++) scanf("%lld",&pos[i]); for(int i=1;i<=n;i++) pos[i]-=x; ++n; pos[n]=0; sort(pos+1,pos+n+1); int ans=pos[2]-pos[1]; for(int i=2;i<=n-1;i++){ ans=gcd(ans,pos[i+1]-pos[i]); } printf("%lld",ans); return 0;}

T4

乍一看不好做其实很水的构造

#include 
#include
#include
#define int long longusing namespace std;int mat[510][510],mat2[510][510],ans=0;int h,w;signed main(){ scanf("%lld %lld",&h,&w); for(int i=1;i<=h;i++) for(int j=1;j<=w;j++) scanf("%lld",&mat[i][j]),mat2[i][j]=mat[i][j]; for(int i=1;i<=h;i++) for(int j=1;j<=w-1;j++){ if(mat2[i][j]%2==0) continue; else{ ans++; mat2[i][j+1]++; mat2[i][j]--; } //ans+=mat2[i][j],mat2[i][j+1]+=mat2[i][j],mat2[i][j]=0; } for(int i=1;i<=h-1;i++){ //ans+=mat2[i][w],mat2[i+1][w]+=mat2[i][w],mat2[i][w]=0; if(mat2[i][w]%2==0) continue; else{ ans++; mat2[i+1][w]++; mat2[i][w]--; } } printf("%lld\n",ans); for(int j=1;j<=h;j++) for(int i=1;i<=w-1;i++){ if(mat[j][i]%2==0) continue; else{ printf("%lld %lld %lld %lld\n",j,i,j,i+1); mat[j][i+1]++; mat[j][i]--; }// for(int k=1;k<=mat[j][i];k++){// printf("%d %d %d %d\n",j,i,j,i+1);// mat[j][i+1]+=1;// }// mat[j][i]=0; } for(int i=1;i<=h-1;i++){ if(mat[i][w]%2==0) continue; else{ mat[i+1][w]++; mat[i][w]--; printf("%lld %lld %lld %lld\n",i,w,i+1,w); } }// for(int k=1;k<=mat[i][w];k++)// printf("%d %d %d %d\n",i,w,i+1,w),mat[i+1][w]++; return 0;}

 

转载于:https://www.cnblogs.com/dreagonm/p/9610877.html

你可能感兴趣的文章
Redis之 命令行 操作
查看>>
Jvm(46),指令集----对象创建与访问指令
查看>>
EL 表达式小结
查看>>
内部排序
查看>>
OEM java.lang.Exception null
查看>>
jQuery EasyUI API 中文文档 - 组合(Combo)
查看>>
10个关于 Dropbox 的另类功用(知乎问答精编)[还是转来了]
查看>>
Oracle体系结构
查看>>
用Modelsim仿真QII FFT IP核的时候出现的Error: Illegal target for defparam
查看>>
javascript Error对象详解
查看>>
nc 局域网聊天+文件传输(netcat)
查看>>
C++它 typedef void *HANDLE
查看>>
Git常用命令
查看>>
Linux下查看MySQL的安装路径
查看>>
C#获取磁盘列表与信息
查看>>
mysql学习笔记4---mysql 复制---源代码
查看>>
Linux设备驱动之semaphore机制【转】
查看>>
每天一个linux命令(25):linux文件属性详解
查看>>
【android】getDimension()、getDimensionPixelOffset()和getDimensionPixelSize()区别详解
查看>>
HDU 3280 Equal Sum Partitions(二分查找)
查看>>