Posted on 2009-08-26 15:09
Uriel 閱讀(507)
評論(0) 編輯 收藏 引用 所屬分類:
POJ 、
數學
這題丟了很久,一直沒什么思路,今天看Discuss說找規律然后就嘗試了一下,被繞得有點頭暈。。
在網上找了一個解題報告,貌似沒考慮 m=0 的情況,但是也可以AC,題目的Bug?
然后理了下思路,一次AC。??紤]了比如(1 0)輸出 1 的情況
下面是用來找規律的數據
1 2 3 4 5 6 7 8 9 10 9 0 remain -
1 2 3 4 5 6 7 8 10 9 8 1 | 10, 9
1 2 3 4 5 6 7 9 10 8 7 2 | 9, 10 8
1 2 3 4 5 6 7 10 9 8 7 | 10, 9 8
1 2 3 4 5 6 8 10 9 7 6 3 | 8, 10 9 7
1 2 3 4 5 6 9 10 8 7 6 | 9, 10 8 7
1 2 3 4 5 6 10 9 8 7 6 | 10, 9 8 7
1 2 3 4 5 7 10 9 8 6 5 4 | 7, 10 9 8 6
1 2 3 4 5 8 10 9 7 6 5 | 8, 10 9 7 6
1 2 3 4 5 9 10 8 7 6 5 | 9, 10 8 7 6
1 2 3 4 5 10 9 8 7 6 5 \|/ 10, 9 8 7 6
1 2 3 4 6 10 9 8 7 5 4 5
1 2 3 4 7 10 9 8 6 5 4
1 2 3 4 8 10 9 7 6 5 4
1 2 3 4 9 10 8 7 6 5 4
1 2 3 4 10 9 8 7 6 5 4
1 2 3 5 10 9 8 7 6 4 3 6
1 2 3 6 10 9 8 7 5 4 3
1 2 3 7 10 9 8 6 5 4 3
1 2 3 8 10 9 7 6 5 4 3
1 2 3 9 10 8 7 6 5 4 3
1 2 3 10 9 8 7 6 5 4 3
1 2 4 10 9 8 7 6 5 3 2 7
1 2 5 10 9 8 7 6 4 3 2
1 2 6 10 9 8 7 5 4 3 2
1 2 7 10 9 8 6 5 4 3 2
1 2 8 10 9 7 6 5 4 3 2
1 2 9 10 8 7 6 5 4 3 2
1 2 10 9 8 7 6 5 4 3 2
1 3 10 9 8 7 6 5 4 2 1 8
1 4 10 9 8 7 6 5 3 2 1
1 5 10 9 8 7 6 4 3 2 1
1 6 10 9 8 7 5 4 3 2 1
1 7 10 9 8 6 5 4 3 2 1
1 8 10 9 7 6 5 4 3 2 1
1 9 10 8 7 6 5 4 3 2 1
1 10 9 8 7 6 5 4 3 2 1
2 10 9 8 7 6 5 4 3 1 0 9
3 10 9 8 7 6 5 4 2 1 0
4 10 9 8 7 6 5 3 2 1 0
5 10 9 8 7 6 4 3 2 1 0
6 10 9 8 7 5 4 3 2 1 0
7 10 9 8 6 5 4 3 2 1 0
8 10 9 7 6 5 4 3 2 1 0
9 10 8 7 6 5 4 3 2 1 0
10 9 8 7 6 5 4 3 2 1 0
下面是AC代碼:

/**//*Problem: 2085 User: Uriel
Memory: 384K Time: 125MS
Language: C++ Result: Accepted*/

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int n,m,i,j,k,flag[50001];

int main()


{
while(1)

{
scanf("%d %d",&n,&m);
if(n==-1 && m==-1)break;
i=0;
memset(flag,0,sizeof(flag));
while((1+(i+1)*i/2)<m)i++;
for(j=1;j<=n-i-1;j++)

{
flag[j]=1;
printf("%d ",j);
}
k=n-i+(m-(i-1)*i/2);
printf("%d ",k);
flag[k]=1;
for(j=n;j>=1;j--)

{
if(!flag[j])

{
printf("%d ",j);
}
}
printf("\n");
}
system("PAUSE");
return 0;
}
