usaco 洛谷 P2694 接金币 题解
2016-10-24 19:43
204 查看
题目描述
在二维坐标系里,有N个金币,编号0至N-1。初始时,第i个金币的坐标是(Xi,Yi)。所有的金币每秒向下垂直下降一个单位高度,例如有个金币当前坐标是(xf, yf),那么t秒后金币所在的位置就是(xf, yf-t)。初始时,FJ在(0,0)坐标处,FJ每秒只能向左移动一个单位距离或者向右移动一个单位距离,当然FJ也可以不移动。如果在某个时刻某个金币和FJ所在的位置重合,那么FJ就能接住这个金币。FJ能否把所有的金币都接住?如果行输出Abletocatch,否则输出Notabletocatch。输入输出格式
输入格式:多组测试数据。
第一行,一个整数G,表示有G组测试数据。1 <= G <= 5。
每组测试数据格式如下:
第一行,一个整数N。 1 <= N <= 50。
接下来有N行,第i行两个整数表示Xi、Yi。
-1000<=Xi<=1000。0<=Yi<=1000。
输出格式:
共G行,每行输出Abletocatch或Notabletocatch。
输入输出样例
输入样例#1:5 3 -1 1 1 3 0 4 1 -3 2 3 -1 1 1 2 0 4 3 0 9 -1 1 1 3 8 70 141 -108 299 52 402 -70 280 84 28 -29 363 66 427 -33 232
输出样例#1:
Abletocatch Notabletocatch Notabletocatch Abletocatch Notabletocatch ————————————————————————————————————我是分割线—————————————————————————————————————————— 纯模拟。水题目。
/* Problem: OJ: User: S.B.S. Time: Memory: Length: */ #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #include<queue> #include<cstdlib> #include<iomanip> #include<cassert> #include<climits> #include<functional> #include<bitset> #include<vector> #include<list> #define F(i,j,k) for(int i=j;i<=k;++i) #define M(a,b) memset(a,b,sizeof(a)) #define FF(i,j,k) for(int i=j;i>=k;i--) #define maxn 10001 #define inf 0x3f3f3f3f #define maxm 4001 #define mod 998244353 //#define LOCAL using namespace std; int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*f; } int n,m; int data[1001]; int main(int argc,const char *argv) { std::ios::sync_with_stdio(false);//cout<<setiosflags(ios::fixed)<<setprecision(1)<<y; #ifdef LOCAL freopen("data.in","r",stdin); freopen("data.out","w",stdout); #endif int g;cin>>g; while(g--){ cin>>n;bool flag=false; F(i,1,1000) data[i]=-inf; F(i,1,n){ int x,y; cin>>x>>y; if(data[y]!=-inf&&x!=data[y]){flag=true;} if(data[y]!=-inf) continue; data[y]=x; } if(flag==true){cout<<"Notabletocatch"<<endl;continue;} int pos=0,pre=0;flag=false;data[0]=0; // F(i,1,n) cout<<data[i]<<" "<<endl; F(i,1,1000){ if(data[i]==-inf) continue; int time=abs(i-pre); // cout<<i<<" "<<pre<<" "<<data[i]<<" "<<data[pre]<<endl; if(abs(data[i]-data[pre])>time){flag=true;break;} pre=i; } if(flag==true) cout<<"Notabletocatch"<<endl; else cout<<"Abletocatch"<<endl; } return 0; }
p2964
相关文章推荐
- 2015NOIP普级组第一题--金币(参考洛谷题解)
- BZOJ1604 & 洛谷2906:[USACO2008 OPEN]Cow Neighborhoods 奶牛的邻居——题解
- [USACO12FEB]Nearby Cows solution 题解 [洛谷3047]
- 【题解】洛谷P2740 poj1273 [USACO4.2]草地排水Drainage Ditches
- USACO 1.3.2 Barn Repair 题解
- 洛谷P3128 [USACO15DEC]最大流Max Flow
- 洛谷——P1209 [USACO1.3]修理牛棚 Barn Repair
- USACO section2.3 Zero Sum题解&代码
- USACO数据及题解
- 【CJOJ1372】【洛谷2730】【USACO 3.2.5】魔板
- USACO Training 4.2.1 Drainage Ditches 草地排水 题解与分析<网络流DINIC算法>
- 【洛谷3047】[USACO12FEB]附近的牛Nearby Cows
- USACO 4.3.4 Letter Game 字母游戏 题解与分析
- 洛谷 p1200 [USACO1.1]你的飞碟在这儿Your Ride Is He…
- [Usaco2011][bzoj2442][洛谷2527]修剪草坪解题报告(dp,贪心,单调队列)
- usaco 2002 月赛 Fiber Communications 题解
- 【贪心】BZOJ3410(Usaco2009 Dec)[Selfish Grazing 自私的食草者]题解
- 洛谷 P1204 [USACO1.2]挤牛奶Milking Cows
- 【USACO14FEB】洛谷3102 Secret Code
- 【洛谷题解】P2303 [SDOi2012]Longge的问题