Uriel's Corner

Research Associate @ Harvard University / Research Interests: Computer Vision, Biomedical Image Analysis, Machine Learning
posts - 0, comments - 50, trackbacks - 0, articles - 594

POJ 1017 Packets---模拟?数学?

Posted on 2010-03-10 20:28 Uriel 阅读(420) 评论(0)  编辑 收藏 引用 所属分类: POJ模拟数学
        还是09年暑假集训开始不久的某天晚上做的一道题了。。当时真是弱啊。。以切水为生。。只会模拟然后找规律。。
        正好有人问,就在这里贴一下,当时的代码好WS。。大家无视之。。
        方法么。。就是先放6*6,5*5,4*4,3*3然后先尽量在缝隙里塞2*2,1*1,不够的话再另外用新的装,每种情况塞几个啥的那些数字草稿纸上画画就出来了~
#include<stdio.h>
#include
<math.h>
#include
<stdlib.h>

int w1,w2,w3,w4,w5,w6,sum,x,s1,y,s2,temp;
int main()
{
    
while(1)
    

        scanf(
"%d %d %d %d %d %d",&w1,&w2,&w3,&w4,&w5,&w6);
        
if(w1==0 && w2==0 && w3==0 && w4==0 && w5==0 && w6==0)exit(0);
        temp
=w2;
        s2
=0;
        sum
=w6+w5+w4+ceil(w3/4.0);
        s2
+=11*w5;
        w2
-=5*w4;
        s2
+=20*w4;
        
if(w3%4==1)
        
{
            w2
-=5;
            s2
+=27;
        }

        
else if(w3%4==2)
        
{
            w2
-=3;
            s2
+=18;
        }

        
else if(w3%4==3)
        
{
            w2
-=1;
            s2
+=9;
        }

        x
=0;
        
if(w2>=0)
        
{
            sum
+=ceil(w2/9.0);
            s2
+=36*(ceil(w2/9.0));
            w1
=w1-s2+temp*4;
            
if(w1>0)sum+=ceil(w1/36.0);
        }

        
else
        
{
            w1
=w1-s2+temp*4;
            
if(w1>0)sum+=ceil(w1/36.0);
        }

        printf(
"%d\n",sum);
    }

    
return 0;
}


       

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理