Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*input
- 2
- 5
- */
- #include<bits/stdc++.h>
- #include <ext/pb_ds/assoc_container.hpp>
- #include <ext/pb_ds/tree_policy.hpp>
- using namespace std;
- using namespace __gnu_pbds;
- #define int long long
- #define double long double
- #define f first
- #define s second
- #define mp make_pair
- #define pb push_back
- #define RE(i,n) for (int i = 1; i <= n; i++)
- #define RED(i,n) for (int i = n; i > 0; i--)
- #define REPS(i,n) for(int i = 1; (i*i) <= n; i++)
- #define REP(i,n) for (int i = 0; i < (int)n; i++)
- #define FOR(i,a,b) for (int i = a; i < b; i++)
- #define REPD(i,n) for (int i = n-1; i >= 0; i--)
- #define FORD(i,a,b) for (int i = a; i >= b; i--)
- #define all(v) v.begin(),v.end()
- #define pii pair<int,int>
- #define vi vector<int>
- #define vvi vector<vi>
- #define print(arr) for (auto it = arr.begin(); it != arr.end(); ++it) cout << *it << " "; cout << endl;
- #define debug(x) cout << x << endl;
- #define debug2(x,y) cout << x << " " << y << endl;
- #define debug3(x,y,z) cout << x << " " << y << " " << z << endl;
- typedef tree<
- int,
- null_type,
- less<int>,
- rb_tree_tag,
- tree_order_statistics_node_update>
- ordered_set;
- const int INF = 1e18+1;
- const int MOD = 1e9+7;
- const double PI = 3.14159265358979323846264338;
- int raise(int a,int n,int m = MOD){
- if(n == 0)return 1;
- if(n == 1)return a;
- int x = 1;
- x *= raise(a,n/2,m);
- x %= m;
- x *= x;
- x %= m;
- if(n%2)x*= a;
- x %= m;
- return x;
- }
- int floor1(int n,int k){
- if(n%k == 0 || n >= 0)return n/k;
- return (n/k)-1;
- }
- int ceil1(int n,int k){
- return floor1(n+k-1,k);
- }
- const int N = 101;
- int n;
- vector<pii> edges;
- int indeg[N];
- bool mat[N][N];
- void solve(){
- cin >> n;
- REP(i,n){
- REP(j,n)mat[i][j] = 0;
- }
- if(n%2 == 0){
- cout << "NO\n";
- return;
- }
- cout << "YES\n";
- REP(i,n)indeg[i]= 0;
- REP(i,n){
- RE(j,(n-1)/2){
- int send = (i+j)%n;
- mat[i][send] = 1;
- edges.pb({i,send});
- indeg[send]++;
- }
- }
- REP(i,n){
- assert(indeg[i] == (n-1)/2);
- }
- REP(i,n){
- REP(j,n)cout << mat[i][j];
- cout << endl;
- }
- }
- signed main(){
- ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
- int t = 1;
- cin >> t;
- while(t--){
- solve();
- }
- return 0;
- }
Add Comment
Please, Sign In to add comment