hdu 1205 吃糖果
水题(不知道归在哪一类)
无意间看到的一题…………觉得比较水有比较无聊就AC了,本来想写二分的后来发现没必要,就一个线性扫描过去即可
从大到小排序,每次在两堆糖果里面轮流取,其中一堆取完后就取接下来的那一堆,取到最后结束。看最后剩下多少个糖果,<2成功,否则失败
从小到大排序是不行的
#include <cstdio> #include <cstring> #include <algorithm> #define N 1000010 using namespace std; int a[N],n; int cmp(int p ,int q) {return p>q?1:0; } int main() { int T; scanf("%d",&T); while(T--) { scanf("%d",&n); for(int i=0; i<n; i++) scanf("%d",&a[i]); sort(a,a+n,cmp); int s=a[0]; for(int i=1; i<n; i++) s=abs(s-a[i]); if(s<2) printf("Yes\n"); else printf("No\n"); } return 0; }