zoukankan      html  css  js  c++  java
  • HDU 1205 吃糖果

    思路:鸽巢原理


    证明:


        1.把某种糖果看做隔板,如果某种糖果有n个,那么就有n+1块区域,至少需要n-1块其他种糖果才


    能使得所有隔板不挨在一块..也就是说能吃完这种糖果.至少需要其他种类糖果n-1块..(鸽巢原理)


        2.数量最多的糖果(隔板)可以构造最多的空间,如果这种糖果有maxn个....那么需要maxn-1个其


    他种糖果.对于某种数量少于maxn的糖果来说,可以在原本数量最多的糖果构造的隔板上"加厚"原


    有的隔板...,那么这"某种糖果"就销声匿迹了.....

        

        考虑极端情况.如果某种糖果无法在这maxn+1的空间内构造出符合条件的序列,那么这种糖果至


    少要有maxn+1+1个(考虑只有两种糖果的情况)...(鸽巢原理)...但是这与数量最多的那种糖果只有


    maxn个矛盾.....(maxn+1+1>maxn 这不等式不难理解吧....).


           (证明来自:http://blog.csdn.net/hnust_xiehonghao/article/details/8005832


    那么满足全部吃完的条件:sum - maxn +1 >= maxn;

    /*HDU 1205 鸽巢原理*/
    #include<stdio.h>
    __int64 sum;
    int main()
    {
       int n,i,num,maxn,cas;
       scanf("%d",&cas);
       while(cas--)
       {
    	   scanf("%d",&n);
          sum=maxn=0;
          for(i=0;i<n;i++)
    	  {
    	   scanf("%d",&num);
    	   if(num>maxn) maxn=num;
    	     sum+=num;
    	  }
    	  if(sum-maxn+1>=maxn) puts("Yes");
    	  else puts("No");
       }
       return 0;
    }


    www.cnblogs.com/tenlee
  • 相关阅读:
    iOS-MVC设计模式
    LoadRunner中文转码
    LoadRunner中Base64编码解码
    jmeter持续集成化(一)---jmeter+Ant+DOS构建执行脚本
    LoadRunner MD5加密
    Jmeter元件--BeanShell Timer
    ftp上传下载
    Shell编程实例
    Oracle数据库sqlplus操作
    oracle执行计划分析
  • 原文地址:https://www.cnblogs.com/tenlee/p/4420164.html
Copyright © 2011-2022 走看看