From d765b1f1d1839298a6da3a4317ab692025aafecf Mon Sep 17 00:00:00 2001 From: Kirito <1362050620@qq.com> Date: Wed, 31 Aug 2016 20:30:19 +0800 Subject: [PATCH] Create 1276_coder.cpp From http://www.acmerblog.com/hdu-1276-%E5%A3%AB%E5%85%B5%E9%98%9F%E5%88%97%E8%AE%AD%E7%BB%83%E9%97%AE%E9%A2%98-1643.html --- HDOJ/1276_coder.cpp | 82 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 HDOJ/1276_coder.cpp diff --git a/HDOJ/1276_coder.cpp b/HDOJ/1276_coder.cpp new file mode 100644 index 0000000..aa5834b --- /dev/null +++ b/HDOJ/1276_coder.cpp @@ -0,0 +1,82 @@ +#include +using namespace std; +int f[5009]; +int main() +{ + int t; + int n,i; + + while(cin>>t) + { + while(t--) + { + cin>>n; + for(i=1;i<=n;i++) + f[i]=i; + int t; + if(n<=3) + { + printf("1"); + for(i=2;i<=n;i++) + printf(" %d",i); + printf("\n"); + continue; + } + while(1) + { + int leap=0; + for(i=1;i<=n;i++) + { + if(f[i]!=-1) + { + leap++; + } + if(leap==2) + { + leap=0; + f[i]=-1; + } + } + t=0; + for(i=1;i<=n;i++) + if(f[i]!=-1) + t++; + + if(t<=3) + break; + + leap=0; + for(i=1;i<=n;i++) + { + if(f[i]!=-1) + leap++; + if(leap==3) + { + f[i]=-1; + leap=0; + } + } + t=0; + for(i=1;i<=n;i++) + if(f[i]!=-1) + t++; + if(t<=3) + break; + + } + for(i=1;i<=n;i++) + if(f[i]!=-1) + { + printf("%d",f[i]); + break; + } + i++; + for(;i<=n;i++) + if(f[i]!=-1) + printf(" %d",f[i]); + printf("\n"); + } + } + + return 0; +}