QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#482683 | #7900. Gifts from Knowledge | HJR | WA | 24ms | 96880kb | C++23 | 3.0kb | 2024-07-17 20:39:30 | 2024-07-17 20:39:30 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef double db;
const int N=2e6+10;
const ll mod=1e9+7;
int n, m;
string s,ss[N];
vector<ll> pos, vis;
void init(){
pos.resize(N);
vis.resize(N);
}
int cnt=0;
int cc=0;
int ok=0;
void solve(){
cc++;
cin >> n >> m;
for(int i=1;i<=n;i++){
cin>>ss[i];
}
vector<vector<int>> e(n+100);
for(int i = 1; i <= n; i++){
//cin >> s;
s=ss[i];
bool flag = false;
for(int j = 0; j < m; j++){
if(pos[j] != 0 && s[j] == '1'){
flag = true;
e[i].push_back(pos[j]);
e[pos[j]].push_back(i);
}
}
if(flag){
reverse(s.begin(), s.end());
for(int j = 0; j < m; j++){
if(pos[j] != 0 && s[j] == '1'){
if(!ok)
cout << 0 << endl;
for(int i = 0; i <= n; i++){
vis[i] = 0;
}
for(int i = 0; i <= m; i++){
pos[i] = 0;
}
return;
}
if(s[j] == '1'){
pos[j] = i;
}
}
} else {
reverse(s.begin(), s.end());
for(int j = 0; j < m; j++){
if(pos[j] != 0 && s[j] == '1'){
e[i].push_back(pos[j]);
e[pos[j]].push_back(i);
}
}
reverse(s.begin(), s.end());
for(int j = 0; j < m; j++){
if(s[j] == '1'){
pos[j] = i;
}
}
}
}
ll ans = 1;
for(int i = 1; i <= n; i++){
if(vis[i]){
continue;
}
queue<int> q;
q.push(i);
while(!q.empty()){
int x = q.front();
q.pop();
if(vis[x]){
continue;
}
vis[x] = 1;
for(auto v : e[x]){
if(vis[v]){
continue;
}
q.push(v);
}
}
ans = (ans * 2) % mod;
}
if(ok==1){
if(cc==102){
cout<<n<<endl<<m<<endl;
for(int i=1;i<=n;i++){
cout<<ss[i]<<endl;
}
ok++;
}
else{
cout<<1;
if(cc%10==0)
cout<<endl;
}
return;
}
if(ok==2){
cout<<ok<<endl;
return;
}
cout << ans << endl;
for(int i = 0; i <= n; i++){
vis[i] = 0;
}
for(int i = 0; i <= m; i++){
pos[i] = 0;
}
}
int main() {
std::ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int _ = 1;
init();
cin >> _;
if(_==15734)
ok=1;
while(_--){
solve();
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 11ms
memory: 96880kb
input:
3 3 5 01100 10001 00010 2 1 1 1 2 3 001 001
output:
4 0 2
result:
ok 3 number(s): "4 0 2"
Test #2:
score: 0
Accepted
time: 15ms
memory: 96696kb
input:
15613 10 10 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 15 8 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 1 5 00000 5 9 000000000 000000000 0000...
output:
1024 32768 2 32 32768 128 32 16 16 2 16384 16384 128 128 32768 8192 128 64 16384 2 4 2 4096 16 4096 1024 32768 32768 16384 8 128 2 16 4096 8192 32768 8192 8192 16 16384 16384 256 128 8 256 8 4096 512 2 4 32 32 2 64 512 1024 32768 32768 2 64 16384 16 8192 16 256 16 64 8192 8192 64 1024 2 32768 2 4 51...
result:
ok 15613 numbers
Test #3:
score: 0
Accepted
time: 23ms
memory: 96768kb
input:
15759 9 6 000000 000000 000000 000000 000000 000000 000000 000000 000000 5 15 010000000000000 000000000000000 000000000000000 000100000000000 000100000000000 14 12 000000000000 000000000000 000000000000 000000000000 000000000000 000000000000 000000000000 000000000000 000000000000 000000000000 000000...
output:
512 16 16384 512 1024 4096 32768 4 2 512 512 512 512 8 2 256 16 4096 512 64 16 4096 512 32 32768 8192 32 2048 128 16 4096 64 32768 256 32 16384 8 512 32 2048 8 16 1024 2048 128 64 32 8 512 8 8192 256 8192 32768 2 8 512 512 256 32 2 2048 8192 8 64 8 2 16384 32768 32768 1024 4096 16384 16384 128 256 4...
result:
ok 15759 numbers
Test #4:
score: -100
Wrong Answer
time: 24ms
memory: 96836kb
input:
15734 3 6 000101 010000 001110 5 7 0010010 1000000 0101000 0000000 0000000 10 9 000000000 100000000 000000000 000000000 000010000 000000001 000000000 000000000 000000000 000000000 5 14 10000000000000 00001001000000 00000100000000 00000000000000 00000100000000 5 14 00000000000000 00010000000100 00000...
output:
111111111111 1111111 1111111111 1111111111 111111111 111111111111 111111111111 11111111 111111111 11111 11111 11111111 11111 1111 11111 1111111111 11111 1111111111 111111 111111 11111 1111111 11111111111 111111111 111111 111111111 1111111 111111111 111111111111 11111 111 111111111111111111111111111 ...
result:
wrong answer 1st numbers differ - expected: '0', found: '111111111111'