| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
AC又能代表什么?题目的意思是题目决定的不是你的代码决定的In Reply To:请高手指点,两种不同的方法,不同的结果,都是AC的代码 Posted by:swpujch at 2007-10-21 16:45:05 唯AC代码论是错误的逻辑
> 我们用了两种不同的理解,写了两个不同的代码,都可以过,
>
> 一:
> 直接求,等待年限最长的那棵树的 等待值,然后输出,(假设可以任意时间砍掉树,最后的 浪费值始终为0)
> #include<iostream>
> using namespace std;
> int main()
> {
> int n,l,t,sum=0;
> while(scanf("%d %d",&n,&l)!=EOF)
> {
> for(int i=0;i<n;i++)
> {
> scanf("%d",&t);
> t=t%l;
> if(t!=0 && sum<l-t)
> sum=l-t;
> }
> printf("%d\n",sum);
> }
> system("pause");
> return 0;
> }
>
> 二:
> 假设等待n年,n从1到L,计算每一个n所对应的浪费值,选取最小浪费值的n,(在等待的 过程中不能砍数,到n年结束时,将所有的树全部砍到,最后的浪费值是最小的值)
> #include<iostream>
> using namespace std;
>
> int data[30000];
>
> int main()
> {
> int n,l;
> int k;
> scanf("%d%d",&n,&l);
>
> int i,j;
> for(i = 0;i<l;i++)
> data[i] = 0;
>
> for(i = 0;i< n;i++)
> {
> scanf("%d",&j);
> j %= l;
> data[j]++;
> }
> int t = l;
> int out,sum,min=2147483641;
> while(t>0)
> {
> sum = 0;
> for(i = 0;i<l;i++)
> {
> sum += data[i]*i;
> }
> int d = data[l-1];
> for(i = l-1;i>0;i--)
> {
> data[i] = data[i-1];
> }
> data[0] = d;
> if(sum < min)
> {
> min = sum;
> out = l-t;
> }
> t--;
> }
> printf("%d\n",out);
>
> system("pause");
> }
>
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator