poj 2182

来源:互联网 发布:遗传算法 机械设计应用 编辑:程序博客网 时间:2024/05/21 09:21

点击打开链接http://poj.org/problem?id=2182

#include <stdio.h>#include <string.h>const int M=8010;int a[M],b[M],visit[M];int main(){int n,i,j,k,min=1;memset(visit,0,sizeof(visit));scanf("%d",&n);for(i=1;i<=n-1;i++){scanf("%d",&a[i]); // 从后往前推  最后一个如果是 x 则说明它是( 1~n集合中)第 x+1小的数字 (前面有x个数字比它小) }          // 倒数第二个是y 继续分析 倒数第二个它是1~n集合中(不含x)的第y+1小的数字 //....... for(i=n-1;i>=1;i--){k=0;for(j=1;j<=n;j++) // 找出当前第 a[i]+1小的数字 {if(visit[j]) // 排除已经选中的 {continue;}elsek++;if(k==a[i]+1){visit[j]=1;b[i]=j;break;}}}for(i=1;i<=n;i++) {if(!visit[i]){b[0]=i;}}for(i=0;i<n;i++){printf("%d\n",b[i]);}return 0;} 


0 0
原创粉丝点击