HDOJ 1205 吃糖果
题目传送:HDOJ 1205
解题思路:保证最大堆和次大堆间的糖果数量之差小于等于1。假设最大堆为Smax,次大堆为Ssub,总糖果树为SUM,则Smax-Ssub<=SUM-Smax-Ssub-1,即2Smax-SUM<=1。
本题代码:
#include <stdio.h> int main() { int t; int n,max,temp,i; long long sum; scanf("%d", &t); while(t--) { max=0; sum=0; scanf("%d", &n); for(i=0;i<n;i++) { scanf("%d", &temp); if(temp>max) max=temp; sum+=temp; } if(2*max-sum<=1) printf("Yes\n"); else printf("No\n"); } return 0; }
更多解题思路可以参考:
http://blog.csdn.net/hnust_xiehonghao/article/details/8005832