QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#281356 | #5523. Graph Problem With Small $n$ | fryan | TL | 1598ms | 134372kb | C++20 | 2.4kb | 2023-12-10 03:20:26 | 2023-12-10 03:20:27 |
Judging History
answer
#include <algorithm>
#include <array>
#include <bitset>
#include <cassert>
#include <chrono>
#include <cstdio>
#include <deque>
#include <iomanip>
#include <iostream>
#include <iterator>
#include <list>
#include <map>
#include <memory>
#include <numeric>
#include <queue>
#include <random>
#include <set>
#include <stack>
#include <string>
#include <tuple>
using namespace std;
#define int long long
#define P pair
#define pi P<int,int>
#define ff first
#define ss second
#define mp make_pair
#define all(x) begin(x), end(x)
#define sz(x) (int) (x).size()
#define V vector
#define vi V<int>
#define v2i V<vi>
#define v3i V<v2i>
#define vpi V<pi>
#define vsi V<si>
#define vb V<bool>
#define v2b V<vb>
#define pb push_back
#define S set
#define MS multiset
#define si S<int>
#define msi MS<int>
#define ins insert
#define era erase
#define M map
#define mii M<int,int>
#define Q queue
#define PQ priority_queue
#define qi Q<int>
#define qpi Q<pi>
#define pqi PQ<int>
#define rpqi PQ<int,vi,greater<int> >
#define pqpi PQ<pi>
#define rpqpi PQ<pi,vpi,greater<pi> >
const int MOD=998244353;
const int INF=922337203685477580;
#define popcnt __builtin_popcount
int n;
vi adj;
vi udj;
vi dp;
vi ans;
void o(int c) {
for (int i = 0; i < n; i++) {
if ((1<<i)&c) cout << 1;
else cout << 0;
}
}
signed main() {
ios::sync_with_stdio(false); cin.tie(nullptr);
cin >> n; adj = vi(n);
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
char c; cin >> c; c -= '0';
adj[i] += c*(1<<j);
}
}
udj = vi(1<<n, 0);
for (int i = 0; i < (1<<n); i++) {
for (int j = 0; j < n; j++) {
if (i&(1<<j)) {
udj[i] |= adj[j];
}
}
}
//if (n > 1) return 0;
dp = vi(1<<n, 0); dp[1] = 1;
for (int m = 1; m < (1<<n); m++) {
for (int nxt = 0; nxt < n; nxt++) {
if (1<<(nxt)&m) continue;
if (udj[dp[m]]&(1<<nxt)) {
dp[m + (1<<nxt)] |= (1<<nxt);
}
}
}
ans = vi(n, 0);
for (int m = 1; m < (1<<n); m++) {
int mask = m;
int cmpl = (1<<n) - 1 - mask;
cmpl -= cmpl%2;
mask -= mask%2;
mask += 1; cmpl += 1;
if (dp[cmpl] == 0 || dp[mask] == 0) continue;
for (int i = 0; i < n; i++) {
if ((1<<i)&dp[mask]) {
ans[i] |= dp[cmpl];
}
}
}
//return 0;
for (int i = 0; i < n; i++) {
if ((1<<i)&ans[i]) {
ans[i] -= (1<<i);
}
o(ans[i]);
cout << "\n";
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3660kb
input:
4 0110 1010 1101 0010
output:
0001 0001 0000 1100
result:
ok 4 lines
Test #2:
score: 0
Accepted
time: 0ms
memory: 3608kb
input:
6 010001 101000 010100 001010 000101 100010
output:
010001 101000 010100 001010 000101 100010
result:
ok 6 lines
Test #3:
score: 0
Accepted
time: 0ms
memory: 3608kb
input:
4 0111 1011 1101 1110
output:
0111 1011 1101 1110
result:
ok 4 lines
Test #4:
score: 0
Accepted
time: 1161ms
memory: 134344kb
input:
23 00000000000000000000000 00000000000000000000000 00000000000000000000000 00000000000000000000000 00000000000000000000000 00000000000000000000000 00000000000000000000000 00000000000000000000000 00000000000000000000000 00000000000000000000000 00000000000000000000000 00000000000000000000000 000000000...
output:
00000000000000000000000 00000000000000000000000 00000000000000000000000 00000000000000000000000 00000000000000000000000 00000000000000000000000 00000000000000000000000 00000000000000000000000 00000000000000000000000 00000000000000000000000 00000000000000000000000 00000000000000000000000 000000000000...
result:
ok 23 lines
Test #5:
score: 0
Accepted
time: 1156ms
memory: 134320kb
input:
23 00010100000000000101000 00000000010000000001000 00000000000001000000001 10000000000000000010000 00000000000000000000000 10000000000000000000000 00000001000000000000000 00000010000000000010000 00000000000001000000000 01000000000000000000000 00000000000000000000000 00000000000000000000000 000000000...
output:
00000000000000000000000 00000000000000000000000 00000000000000000000000 00000000000000000000000 00000000000000000000000 00000000000000000000000 00000000000000000000000 00000000000000000000000 00000000000000000000000 00000000000000000000000 00000000000000000000000 00000000000000000000000 000000000000...
result:
ok 23 lines
Test #6:
score: 0
Accepted
time: 1150ms
memory: 134352kb
input:
23 00001000000000000000000 00001000010001000000000 00000000000101000010000 00001000000100000000000 11010000010011000100000 00000000000100000000000 00000000000000000000001 00000000000000000101000 00000000000000000000000 01001000000000101010010 00000000000000000000101 00110100000010001000000 000010000...
output:
00000000000000000000000 00000000000000000000000 00000000000000000000000 00000000000000000000000 00000000000000000000000 00000000000000000000000 00000000000000000000000 00000000000000000000000 00000000000000000000000 00000000000000000000000 00000000000000000000000 00000000000000000000000 000000000000...
result:
ok 23 lines
Test #7:
score: 0
Accepted
time: 1150ms
memory: 134304kb
input:
23 01000000000001101001100 10000001101000000000000 00000100000100010000100 00000000000000001011000 00000100001000000000000 00101000000000001000001 00000000000000000000000 01000000000000000000000 01000000000100000010000 00000000000001000000011 01001000000000010000000 00100000100001000100001 000000000...
output:
00000000000000000000000 00000000000000000000000 00000000000000000000000 00000000000000000000000 00000000000000000000000 00000000000000000000000 00000000000000000000000 00000000000000000000000 00000000000000000000000 00000000000000000000000 00000000000000000000000 00000000000000000000000 000000000000...
result:
ok 23 lines
Test #8:
score: 0
Accepted
time: 1171ms
memory: 134308kb
input:
23 00000000010001001001010 00100010001101110000001 01000001000100110000000 00000011010001101100100 00000000010000010001000 00000000000000001001000 01010001000000000000001 00110010000000000000010 00000000011000100100000 10011000101000100000000 01000000110010101010000 01100000000000000000000 000000000...
output:
01111111110111110110111 10011111110111110110111 10011111110111110110111 11101111110110110110111 11110111110111110110111 11111011110111111111111 11111101110111110110111 11111110110111110110111 11111111010111110110111 11111111100110100110111 00000000000010000010100 11111111110011110110111 111111111111...
result:
ok 23 lines
Test #9:
score: 0
Accepted
time: 1163ms
memory: 134284kb
input:
23 00001000001001000000000 00101100111110100000000 01001000100001011010000 00000000010000010010000 11100001100001000000010 01000010101010100011011 00000100000100100010000 00001000011000000010001 01101100000000011001001 01010001000010011000000 11000101000110001100000 01000010001000000000010 010001000...
output:
00000000000000000000100 00000000000000000000100 00000000000000000000100 00000000000000000000100 00000000000000000000100 00000000000000000000100 00000000000000000000100 00000000000000000000100 00000000000000000000100 00000000000000000000100 00000000000000000000100 00000000000000000000100 000000000000...
result:
ok 23 lines
Test #10:
score: 0
Accepted
time: 1183ms
memory: 134344kb
input:
23 00001011110010000000001 00000100000011000000100 00010011010100000000011 00100011011001010100100 10000101000110100000000 01001000001010001000100 10110000000110000010000 10111000001100010100010 10000000000010001000110 10110000001110100110001 00010101010100001000000 00101011011000100100011 110011101...
output:
00000000000000000001000 00000000000000000001000 00000000000000000001000 00000000000000000001000 00000000000000000001000 00000000000000000001000 00000000000000000001000 00000000000000000001000 00000000000000000001000 00000000000000000001000 00000000000000000001000 00000000000000000001000 000000000000...
result:
ok 23 lines
Test #11:
score: 0
Accepted
time: 1219ms
memory: 134368kb
input:
23 00100100001000000100001 00101110110000100100001 11000000000101001000100 00000000010000001111010 01000011010001011001010 11000000010100001001011 01001000001010101000100 00001000001010000000000 01000000000001100001011 01011100001101100000000 10000011010010100000010 00100100010000000001000 000000110...
output:
01111111111111111111111 10111111111111111111111 11011111111111111111111 11101111111111111111111 11110111111111111111111 11111011111111111111111 11111101111111111111111 11111110111111111111111 11111111011111111111111 11111111101111111111111 11111111110111111111111 11111111111011111111111 111111111111...
result:
ok 23 lines
Test #12:
score: 0
Accepted
time: 1330ms
memory: 134328kb
input:
23 00000001011001011100100 00000001010000000010100 00000001010010100010000 00001000100111100000000 00010100011000010111001 00001000100001000010010 00000001111001100011000 11100010111100110001001 00010111010000101100110 11101011100000100100100 10001011000010100000010 00010001000001011101110 001100000...
output:
01111111111111111111111 10111111111111111111111 11011111111111111111111 11101111111111111111111 11110111111111111111111 11111011111111111111111 11111101111111111111111 11111110111111111111111 11111111011111111111111 11111111101111111111111 11111111110111111111111 11111111111011111111111 111111111111...
result:
ok 23 lines
Test #13:
score: 0
Accepted
time: 1305ms
memory: 134340kb
input:
23 00100100001101000100000 00010111011000100000010 10000010010001111000010 01001011101001000100000 00010000010110000100111 11000000101000011101001 01110001100000010101100 01010010001001010100000 00010110001100010010001 01101000000011000111000 11010101100010010001101 10001000100010001110100 000010000...
output:
01111111111111111111111 10111111111111111111111 11011111111111111111111 11101111111111111111111 11110111111111111111111 11111011111111111111111 11111101111111111111111 11111110111111111111111 11111111011111111111111 11111111101111111111111 11111111110111111111111 11111111111011111111111 111111111111...
result:
ok 23 lines
Test #14:
score: 0
Accepted
time: 1443ms
memory: 134336kb
input:
23 01001101001011010101100 10001010111100100001110 00000000010101000111100 00000000001010010100010 11000000100110000111000 10000010001000010101000 01000100100010001100101 10000000010001000110110 01001010000001111100000 01100001000001001101001 11010100000011001010111 01101000000000100100110 100110100...
output:
01111111111111111111111 10111111111111111111111 11011111111111111111111 11101111111111111111111 11110111111111111111111 11111011111111111111111 11111101111111111111111 11111110111111111111111 11111111011111111111111 11111111101111111111111 11111111110111111111111 11111111111011111111111 111111111111...
result:
ok 23 lines
Test #15:
score: 0
Accepted
time: 1508ms
memory: 134340kb
input:
23 01100101000101001000001 10111000100000010110010 11011010011101000010010 01100010001111011011111 01100010011110001111100 10000000011000001011010 00111001001000101100111 10000010110110011000000 01000001001110010100100 00101101000100111100001 00111110100110011011010 10111001111010001010000 000110011...
output:
01111111111111111111111 10111111111111111111111 11011111111111111111111 11101111111111111111111 11110111111111111111111 11111011111111111111111 11111101111111111111111 11111110111111111111111 11111111011111111111111 11111111101111111111111 11111111110111111111111 11111111111011111111111 111111111111...
result:
ok 23 lines
Test #16:
score: 0
Accepted
time: 1423ms
memory: 134300kb
input:
23 01111001001110001000101 10000000000100111111110 10010101000110100100101 10101000001010010101001 10010010011110101101111 00100000101100011000000 00001000011000010001101 10100000010000000000100 00000100010110001111100 00001011100101010110111 10011110000000010101101 11101100110010010100000 101110001...
output:
01111111111111111111111 10111111111111111111111 11011111111111111111111 11101111111111111111111 11110111111111111111111 11111011111111111111111 11111101111111111111111 11111110111111111111111 11111111011111111111111 11111111101111111111111 11111111110111111111111 11111111111011111111111 111111111111...
result:
ok 23 lines
Test #17:
score: 0
Accepted
time: 1500ms
memory: 134360kb
input:
23 01010000000100001110001 10000110010001110010100 00011000101111001010110 10101111011100101100111 00110011111111111011000 01010011100001111011011 01011100001111000011101 00011100001110111010010 00101100011101001000011 01011000100000000000010 00111011100001001000111 10111011100000110100001 001010110...
output:
01111111111111111111111 10111111111111111111111 11011111111111111111111 11101111111111111111111 11110111111111111111111 11111011111111111111111 11111101111111111111111 11111110111111111111111 11111111011111111111111 11111111101111111111111 11111111110111111111111 11111111111011111111111 111111111111...
result:
ok 23 lines
Test #18:
score: 0
Accepted
time: 1561ms
memory: 134336kb
input:
23 00100101011111000101011 00100001000110000111101 11010000011110010110011 00101101110110000101110 00010101111001110101110 10011001111101010011101 00000000110011000000100 11011100110111001110110 00011111000000100110010 10111111000111101010010 10101100000111111010100 11110101011010101010010 111100110...
output:
01111111111111111111111 10111111111111111111111 11011111111111111111111 11101111111111111111111 11110111111111111111111 11111011111111111111111 11111101111111111111111 11111110111111111111111 11111111011111111111111 11111111101111111111111 11111111110111111111111 11111111111011111111111 111111111111...
result:
ok 23 lines
Test #19:
score: 0
Accepted
time: 1598ms
memory: 134372kb
input:
23 00100001100011011101011 00111011101101101011001 11001101100100001000111 01001010110101101000010 01110011001111000101111 00100011100000111101010 01011100000110101001100 11101100010110110011000 11110100010010000011010 00010001101011011011011 01001000010001001011111 01111011000010101011101 100010111...
output:
01111111111111111111111 10111111111111111111111 11011111111111111111111 11101111111111111111111 11110111111111111111111 11111011111111111111111 11111101111111111111111 11111110111111111111111 11111111011111111111111 11111111101111111111111 11111111110111111111111 11111111111011111111111 111111111111...
result:
ok 23 lines
Test #20:
score: -100
Time Limit Exceeded
input:
24 000000000000000000000000 000000000000000000000000 000000000000000000000000 000000000000000000000000 000000000000000000000000 000000000000000000000000 000000000000000000000000 000000000000000000000000 000000000000000000000000 000000000000000000000000 000000000000000000000000 0000000000000000000000...