【ZOJ - 4032】Magic Points (思维,几何,构造)
生活随笔
收集整理的這篇文章主要介紹了
【ZOJ - 4032】Magic Points (思维,几何,构造)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題干:
?
解題報告:
想到了,這樣繞圈構造。但是這樣有個問題,最后一個點如何構造。
剛開始想的是n=奇數? ,? 就8 10 這樣的連一條,n=偶數? 就8 11 這樣的連一條,隨便構造一下就行,但是發現這樣好像不行。所以改了構造方法
?
大概長這樣,就是交叉著連,然后如果n=偶數,那會剩下兩條邊的空閑,那就先2,4這樣連一條,3,7這樣連一條。
如果n=奇數,那就剩下一條邊的空閑,那就直接3,7這樣就行了。
AC代碼:
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> using namespace std; typedef long long ll;int n; int main() {int t,q,i,j,k,cnt,a1,b1,a2,b2;cin>>t;for(;t;t--){scanf("%d",&n);if(n==2) {puts("0 2 1 3"); continue;}if(n%2 == 1) {int x = 0,y = 2*n-2;for(int i = 1; i<n; i+=2) {printf("%d %d ",x,y-1);printf("%d %d ",x+1,y);x+=2;y-=2;} // printf("***");printf("%d %d\n",n-1,2*n-1); }else {int x = 0,y = 2*n-2;for(int i = 1; i<=n-2; i+=2) {printf("%d %d ",x,y-1);printf("%d %d ",x+1,y);x+=2;y-=2;}printf("%d %d ",n-2,n); printf("%d %d\n",n-1,2*n-1);}}return 0; }?
總結
以上是生活随笔為你收集整理的【ZOJ - 4032】Magic Points (思维,几何,构造)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: spyagent4.exe - spya
- 下一篇: spyblast.exe - spybl