zoukankan      html  css  js  c++  java
  • G. Special Permutation(找规律模拟)

    (这题感觉自己就是瞎凑......)

    (首先n<=3时无解)

    (然后考虑奇数n)

    1 3 5 7 ...  n | n-3 n-1 | n-5 n-7 n-9 ... 2
    

    (其实就是前半段从1(奇数)一直加2加到n,就可以消去所有奇数)

    (后半段从n-5(偶数)一直减2,就可以消去大部分偶数)

    (至于中间的部分就是凑出来的)

    (那么偶数其实也是一样的道理)

    (前半段从1(奇数)一直加2加到n-1,后半段从n-6(偶数)一直减2)

    1 3 5 7 ... n-1 | n-4 n n-2 | n-6 n-8 ... 2
    
    #include <bits/stdc++.h>
    using namespace std;
    int n,t,vis[1009];
    int main()
    {
    	cin>>t;
    	while(t--)
    	{
    		memset(vis,0,sizeof(vis));
    		cin>>n;
    		if(n<=3)	cout<<-1;
    		else if(n==4)
    			cout<<"2 4 1 3";
    		else if(n%2==1)//奇数 
    		{
    			int now=1,shu=0;
    			while(now<=n)	cout<<now<<" ",now+=2,shu++;
    			now-=2;
    			now-=3,cout<<now<<" ",shu++;//左三
    			now+=2,cout<<now<<" ",shu++;//右二 
    			if(shu<n) now-=4,cout<<now<<" ",shu++;//左四
    			while(shu<n)	cout<<now-2<<" ",now-=2,shu++; 
    		}
    		else
    		{
    			int now=1,shu=0;
    			while(now<=n)	cout<<now<<" ",now+=2,shu++;
    			now-=2;
    			if(shu<n) now-=3,cout<<now<<" ",shu++;//左三 
    			if(shu<n) now+=4,cout<<now<<" ",shu++;//右四 
    			if(shu<n) now-=2,cout<<now<<" ",shu++;//左二
    			if(shu<n) now-=4,cout<<now<<" ",shu++;//左4 
    			while(shu<n)	cout<<now-2<<" ",now-=2,shu++; 
    		}
    		cout<<endl;
    	}
    }
    
  • 相关阅读:
    CQOI2009中位数图
    CQOI2011分金币&HAOI2008糖果传递
    SCOI2010游戏
    JSOI2007建筑抢修
    HNOI2008明明的烦恼
    SCOI2009生日快乐
    (22/24) webpack实战技巧:静态资源集中输出
    (22/24) webpack实战技巧:静态资源集中输出
    [mysql]linux mysql 读写分离
    [mysql]linux mysql 读写分离
  • 原文地址:https://www.cnblogs.com/iss-ue/p/12866848.html
Copyright © 2011-2022 走看看