Guest User

Untitled

a guest
Oct 14th, 2019
375
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.28 KB | None | 0 0
  1. /*input
  2. 2
  3. 5
  4. */
  5. #include<bits/stdc++.h>
  6. #include <ext/pb_ds/assoc_container.hpp>
  7. #include <ext/pb_ds/tree_policy.hpp>
  8. using namespace std;
  9. using namespace __gnu_pbds;
  10.  
  11. #define int long long
  12. #define double long double
  13. #define f first
  14. #define s second
  15. #define mp make_pair
  16. #define pb push_back
  17.  
  18. #define RE(i,n) for (int i = 1; i <= n; i++)
  19. #define RED(i,n) for (int i = n; i > 0; i--)
  20. #define REPS(i,n) for(int i = 1; (i*i) <= n; i++)
  21. #define REP(i,n) for (int i = 0; i < (int)n; i++)
  22. #define FOR(i,a,b) for (int i = a; i < b; i++)
  23. #define REPD(i,n) for (int i = n-1; i >= 0; i--)
  24. #define FORD(i,a,b) for (int i = a; i >= b; i--)
  25.  
  26. #define all(v) v.begin(),v.end()
  27. #define pii pair<int,int>
  28. #define vi vector<int>
  29. #define vvi vector<vi>
  30. #define print(arr) for (auto it = arr.begin(); it != arr.end(); ++it) cout << *it << " "; cout << endl;
  31. #define debug(x) cout << x << endl;
  32. #define debug2(x,y) cout << x << " " << y << endl;
  33. #define debug3(x,y,z) cout << x << " " << y << " " << z << endl;
  34.  
  35. typedef tree<
  36. int,
  37. null_type,
  38. less<int>,
  39. rb_tree_tag,
  40. tree_order_statistics_node_update>
  41. ordered_set;
  42.  
  43. const int INF = 1e18+1;
  44. const int MOD = 1e9+7;
  45. const double PI = 3.14159265358979323846264338;
  46.  
  47. int raise(int a,int n,int m = MOD){
  48.   if(n == 0)return 1;
  49.   if(n == 1)return a;
  50.   int x = 1;
  51.     x *= raise(a,n/2,m);
  52.     x %= m;
  53.     x *= x;
  54.     x %= m;
  55.     if(n%2)x*= a;
  56.     x %= m;
  57.     return x;
  58. }
  59.  
  60. int floor1(int n,int k){
  61.     if(n%k == 0 || n >= 0)return n/k;
  62.     return (n/k)-1;
  63. }
  64.  
  65. int ceil1(int n,int k){
  66.     return floor1(n+k-1,k);
  67. }
  68.  
  69. const int N = 101;
  70. int n;
  71. vector<pii> edges;
  72. int indeg[N];
  73. bool mat[N][N];
  74.  
  75. void solve(){
  76.     cin >> n;
  77.     REP(i,n){
  78.       REP(j,n)mat[i][j] = 0;
  79.     }
  80.     if(n%2 == 0){
  81.       cout << "NO\n";
  82.       return;
  83.     }
  84.     cout << "YES\n";
  85.     REP(i,n)indeg[i]= 0;
  86.     REP(i,n){
  87.       RE(j,(n-1)/2){
  88.         int send = (i+j)%n;
  89.         mat[i][send] = 1;
  90.         edges.pb({i,send});
  91.         indeg[send]++;
  92.       }
  93.     }
  94.     REP(i,n){
  95.       assert(indeg[i] == (n-1)/2);
  96.     }
  97.     REP(i,n){
  98.       REP(j,n)cout << mat[i][j];
  99.       cout << endl;
  100.     }
  101. }
  102.  
  103. signed main(){
  104.   ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
  105.   int t = 1;
  106.   cin >> t;
  107.   while(t--){
  108.     solve();
  109.   }
  110.   return 0;
  111. }
Add Comment
Please, Sign In to add comment