QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#373519 | #7854. 这不是一道数据结构题 | NATURAL6 | 65 | 63ms | 48196kb | C++17 | 2.1kb | 2024-04-01 19:42:21 | 2024-04-01 19:42:23 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
#define mod 1000000007
inline long long qread()
{
long long a=0,f=1;char ch=getchar();
while(!isdigit(ch)){if(ch=='-')f=-1;ch=getchar();}
while(isdigit(ch)){(a*=10)+=(ch^48);ch=getchar();}
return a*f;
}
int n,m,ans,dfn[200010],low[200010],tot,que[200010],ed,cnt,jc[200010];
int deg[200010],fa[200010],vis[200010];
vector<int>e[200010],S;
vector< pair<int,int> >eg[200010];
map<int,int>E[400010];
queue<int>qu;
inline void tarjan(int rt)
{
dfn[rt]=low[rt]=++tot;que[++ed]=rt;
for(int i:e[rt])
{
if(!dfn[i])
{
tarjan(i);
low[rt]=min(low[rt],low[i]);
if(low[i]>=dfn[rt])
{
++cnt;
++deg[rt],++deg[cnt];fa[cnt]=rt;
do{
++deg[que[ed]];
++deg[cnt];
fa[que[ed]]=cnt;
}while(que[ed--]^i);
}
}
else low[rt]=min(low[rt],dfn[i]);
}
return ;
}
int main()
{
cnt=n=qread(),m=qread();jc[0]=1;
for(int i=1;i<=n;++i)jc[i]=1ll*jc[i-1]*i%mod;
for(int i=1,u,v;i<=m;++i)
{
u=qread(),v=qread();
e[u].emplace_back(v);
e[v].emplace_back(u);
}
tarjan(1);
for(int i=1;i<=n;++i)for(int j:e[i])if(i<j)
{
if(fa[fa[i]]==j)eg[fa[i]-n].emplace_back(make_pair(i,j));
else eg[fa[j]-n].emplace_back(make_pair(i,j));
}
for(int i=1;i<=cnt-n;++i)
{
S.clear();
for(pair<int,int>j:eg[i])
{
if(!vis[j.first])S.emplace_back(j.first),vis[j.first]=1;
if(!vis[j.second])S.emplace_back(j.second),vis[j.second]=1;
E[j.first][j.second]=E[j.second][j.first]=0;
}
for(int j:S)if(E[j].size()==2)qu.push(j);
while(!qu.empty())
{
int p=qu.front();qu.pop();
if(E[p].size()^2)continue;
int A=E[p].begin()->first,B=prev(E[p].end())->first;
E[A].erase(p);E[B].erase(p);E[p].clear();
if(E[A][B])continue;
E[A][B]=E[B][A]=1;
if(E[A].size()==2)qu.push(A);
if(E[B].size()==2)qu.push(B);
}
tot=0;
for(int j:S)tot+=(E[j].size()>0),E[j].clear(),vis[j]=0;
if(tot^2)
{
puts("0");
return 0;
}
}
ans=n;
for(int i=1;i<=n;++i)ans=1ll*ans*jc[deg[i]]%mod;
for(int i=n+1;i<=cnt;++i)if(deg[i]^2)ans=1ll*ans*2%mod;
printf("%d\n",ans);
return 0;
}
詳細信息
Subtask #1:
score: 5
Accepted
Test #1:
score: 5
Accepted
time: 6ms
memory: 36908kb
input:
7 9 1 2 2 3 3 4 1 5 2 5 2 6 5 6 5 7 6 7
output:
56
result:
ok single line: '56'
Test #2:
score: 0
Accepted
time: 4ms
memory: 35968kb
input:
10 14 10 9 4 1 7 10 3 5 9 6 1 7 8 5 2 7 8 6 4 10 9 3 8 7 4 5 7 3
output:
0
result:
ok single line: '0'
Test #3:
score: 0
Accepted
time: 0ms
memory: 36316kb
input:
10 14 7 9 5 1 2 1 8 3 6 5 4 2 10 6 8 1 7 10 7 1 2 8 3 4 6 3 9 1
output:
0
result:
ok single line: '0'
Test #4:
score: 0
Accepted
time: 2ms
memory: 35832kb
input:
10 15 4 9 6 8 6 1 3 2 3 10 2 7 3 6 1 9 9 5 1 8 3 8 10 6 5 8 3 7 7 10
output:
40
result:
ok single line: '40'
Subtask #2:
score: 0
Wrong Answer
Test #5:
score: 0
Wrong Answer
time: 63ms
memory: 48196kb
input:
200000 199999 76849 117660 190775 11517 36929 136177 161792 186900 165326 184615 74197 120051 7891 83240 121896 35204 83314 195652 104144 158348 71191 182187 122824 50031 108950 179173 165120 190230 156949 181392 171984 82834 96017 30143 58114 108979 38698 90371 185399 171751 139913 99465 71566 1324...
output:
0
result:
wrong answer 1st lines differ - expected: '437454115', found: '0'
Subtask #3:
score: 0
Skipped
Dependency #2:
0%
Subtask #4:
score: 20
Accepted
Test #13:
score: 20
Accepted
time: 4ms
memory: 35496kb
input:
300 305 289 290 34 35 111 140 90 93 233 240 110 271 116 117 12 21 141 142 53 57 21 85 99 102 34 42 183 184 240 264 252 253 223 224 159 160 126 131 112 113 28 33 50 52 204 208 185 188 46 50 262 264 197 199 111 136 259 261 290 294 49 50 263 264 210 212 291 294 203 208 184 185 120 121 111 131 210 240 2...
output:
482487615
result:
ok single line: '482487615'
Test #14:
score: 0
Accepted
time: 0ms
memory: 35536kb
input:
300 320 233 237 208 217 90 92 277 278 226 246 79 80 37 40 1 9 190 191 213 214 94 96 231 232 162 163 9 10 226 227 172 173 168 169 131 135 158 159 133 134 59 60 61 102 52 57 161 180 172 174 84 86 207 208 54 55 9 16 118 119 122 123 166 170 212 215 38 39 264 266 180 196 65 69 287 288 22 23 24 28 201 202...
output:
821115099
result:
ok single line: '821115099'
Test #15:
score: 0
Accepted
time: 7ms
memory: 35516kb
input:
300 350 104 106 257 259 216 298 250 251 147 148 217 218 220 267 284 285 249 250 232 233 145 209 257 258 283 287 232 238 255 256 206 207 189 190 23 25 48 51 75 115 187 193 14 18 90 94 81 82 45 48 90 91 42 44 51 54 154 155 174 175 60 62 82 85 99 100 160 161 216 217 200 202 226 231 255 257 252 253 36 3...
output:
427803536
result:
ok single line: '427803536'
Test #16:
score: 0
Accepted
time: 8ms
memory: 37032kb
input:
300 400 59 60 221 225 12 29 77 79 192 197 85 87 79 80 121 122 197 199 66 67 229 231 23 24 35 46 191 201 233 235 211 212 7 8 209 210 175 176 60 61 152 156 211 213 205 206 285 286 73 74 43 44 138 141 290 291 254 259 115 116 214 216 105 106 81 84 25 28 151 165 135 141 206 214 77 78 185 186 200 201 3 12...
output:
887964015
result:
ok single line: '887964015'
Test #17:
score: 0
Accepted
time: 4ms
memory: 36932kb
input:
300 500 161 164 45 46 199 201 87 88 44 50 216 218 65 68 209 225 96 97 111 113 293 294 262 263 91 92 76 77 31 38 235 267 292 294 109 111 65 67 186 188 18 19 2 3 9 10 255 256 7 8 61 63 261 267 250 252 91 97 1 8 183 229 267 268 79 80 274 275 140 141 133 277 166 168 254 255 240 245 46 47 59 63 250 251 1...
output:
217536838
result:
ok single line: '217536838'
Subtask #5:
score: 20
Accepted
Test #18:
score: 20
Accepted
time: 4ms
memory: 35064kb
input:
300 500 279 256 263 65 40 62 236 256 8 193 164 235 242 256 27 219 72 244 49 253 289 261 162 113 196 199 121 222 293 245 33 186 206 279 111 139 97 15 203 24 245 157 184 59 188 90 239 283 42 5 107 108 267 51 200 126 286 282 293 59 42 261 276 216 152 6 92 220 225 69 88 166 179 109 158 144 133 18 147 18...
output:
159215763
result:
ok single line: '159215763'
Test #19:
score: 0
Accepted
time: 4ms
memory: 36480kb
input:
300 400 266 230 93 211 207 79 137 173 3 72 277 182 143 250 297 136 285 26 11 98 188 257 271 65 298 259 58 109 193 227 180 195 137 56 104 285 39 9 166 33 41 188 72 243 25 80 81 268 190 158 76 90 191 266 1 145 119 138 241 7 179 103 275 108 144 235 164 248 146 64 69 285 288 200 90 51 5 163 116 255 280 ...
output:
910719722
result:
ok single line: '910719722'
Test #20:
score: 0
Accepted
time: 4ms
memory: 36472kb
input:
300 360 103 272 29 124 224 18 197 163 237 39 40 192 267 288 137 181 42 80 300 148 293 181 150 256 99 274 169 254 97 107 239 154 121 282 254 273 181 296 26 162 297 202 225 24 273 280 59 98 23 18 76 96 107 205 142 196 1 141 196 240 71 292 190 188 263 197 194 227 37 186 286 17 228 139 64 18 243 152 166...
output:
392453747
result:
ok single line: '392453747'
Test #21:
score: 0
Accepted
time: 0ms
memory: 35852kb
input:
300 330 40 16 254 156 114 293 90 109 236 82 44 153 243 5 277 201 198 229 286 149 250 253 84 130 291 180 2 262 110 153 93 225 12 57 30 92 170 247 86 105 110 87 256 167 27 230 200 99 84 194 113 207 176 245 55 47 16 23 74 42 222 240 27 253 109 254 226 15 118 31 101 33 260 154 223 78 173 63 209 248 293 ...
output:
109903798
result:
ok single line: '109903798'
Test #22:
score: 0
Accepted
time: 3ms
memory: 36880kb
input:
300 310 92 178 136 186 203 85 8 166 150 245 119 97 113 131 296 163 157 47 169 191 108 238 215 244 22 1 87 300 238 118 230 123 214 192 230 140 251 142 209 54 244 166 173 269 276 284 43 38 183 121 65 236 73 76 241 145 99 230 88 57 150 35 157 244 83 201 262 169 97 43 273 64 294 157 119 201 207 65 28 21...
output:
419876890
result:
ok single line: '419876890'
Subtask #6:
score: 20
Accepted
Test #23:
score: 20
Accepted
time: 0ms
memory: 37052kb
input:
300 597 181 11 16 186 144 42 80 274 72 186 238 172 7 268 225 118 198 84 274 214 170 27 181 44 171 74 270 266 20 6 296 108 45 25 32 198 99 86 129 110 281 273 67 47 259 107 277 265 264 145 215 218 264 164 156 281 100 23 284 125 109 280 92 203 108 74 227 171 213 81 262 239 206 111 5 23 90 121 77 274 23...
output:
600
result:
ok single line: '600'
Test #24:
score: 0
Accepted
time: 8ms
memory: 35212kb
input:
300 597 145 168 81 149 192 248 114 243 113 25 201 259 190 156 225 40 127 199 225 33 229 4 298 36 243 81 31 163 192 294 258 31 8 299 210 28 87 143 180 205 270 281 257 174 173 187 203 128 179 292 34 4 292 236 288 248 78 255 7 239 191 124 227 194 113 187 270 93 164 238 256 37 121 88 279 133 11 99 189 1...
output:
600
result:
ok single line: '600'
Test #25:
score: 0
Accepted
time: 4ms
memory: 36632kb
input:
300 597 137 70 124 146 24 239 38 218 186 180 244 153 274 153 274 298 256 126 36 174 172 157 60 274 270 87 207 14 114 280 221 51 165 106 166 25 29 62 210 122 104 157 218 173 134 154 65 120 131 46 45 262 138 253 48 187 118 114 101 184 47 244 200 60 296 267 34 128 129 165 53 246 102 123 153 238 238 249...
output:
600
result:
ok single line: '600'
Test #26:
score: 0
Accepted
time: 0ms
memory: 36000kb
input:
300 597 279 221 253 68 255 267 293 234 88 82 272 133 157 107 129 78 221 160 45 205 8 197 295 127 212 288 232 224 274 23 101 65 4 272 112 300 51 225 221 236 213 236 166 182 87 57 236 254 295 259 28 128 124 39 157 177 133 49 64 45 291 94 161 111 98 144 244 92 135 64 39 44 171 244 241 238 268 296 208 2...
output:
0
result:
ok single line: '0'
Test #27:
score: 0
Accepted
time: 4ms
memory: 35284kb
input:
300 597 240 186 292 198 221 201 168 95 237 175 71 272 55 257 181 281 47 115 188 83 251 142 297 77 271 181 68 75 267 209 195 92 22 54 134 300 253 251 238 13 179 199 246 144 61 199 65 271 113 46 180 204 144 209 84 184 124 250 238 212 70 30 118 125 175 39 88 54 253 159 208 243 115 262 30 128 214 22 187...
output:
0
result:
ok single line: '0'
Test #28:
score: 0
Accepted
time: 0ms
memory: 36624kb
input:
300 597 166 131 24 224 206 54 208 109 243 157 191 268 162 109 260 285 238 144 193 283 57 12 145 76 186 192 24 72 96 243 80 137 144 127 59 87 50 106 179 170 93 261 249 66 160 210 177 239 183 287 226 249 115 195 252 153 289 284 93 144 280 227 289 170 17 210 14 217 154 54 149 177 138 88 294 230 211 93 ...
output:
0
result:
ok single line: '0'
Subtask #7:
score: 0
Wrong Answer
Dependency #4:
100%
Accepted
Dependency #5:
100%
Accepted
Dependency #6:
100%
Accepted
Test #29:
score: 10
Accepted
time: 4ms
memory: 36148kb
input:
300 500 7 123 207 27 201 68 247 242 161 144 296 61 91 289 220 48 167 48 11 200 144 19 96 249 202 7 24 152 149 198 51 253 145 167 231 218 151 66 61 7 285 139 16 153 256 202 20 36 244 161 17 215 58 124 24 88 187 217 189 15 189 279 216 182 34 213 65 287 192 262 60 224 175 112 42 206 148 226 146 43 226 ...
output:
415588302
result:
ok single line: '415588302'
Test #30:
score: 0
Accepted
time: 3ms
memory: 36356kb
input:
300 400 220 267 181 218 108 226 109 23 243 167 252 9 274 24 195 130 4 134 200 101 258 166 130 266 220 170 261 60 139 160 255 191 150 242 93 229 69 202 194 14 191 258 102 298 172 61 24 96 207 200 262 181 63 162 259 292 21 242 56 217 156 132 6 64 62 248 85 77 211 60 142 171 224 94 26 109 71 76 112 6 1...
output:
703133826
result:
ok single line: '703133826'
Test #31:
score: 0
Accepted
time: 0ms
memory: 37020kb
input:
300 350 46 212 238 202 32 141 270 121 22 268 17 171 13 54 140 292 222 163 197 109 260 37 14 92 176 133 205 168 112 173 222 295 190 178 66 147 46 73 282 225 299 173 252 295 161 178 140 18 298 146 76 90 171 226 256 252 270 126 8 138 131 30 138 201 85 101 79 244 220 96 119 94 138 148 3 221 255 241 283 ...
output:
768971311
result:
ok single line: '768971311'
Test #32:
score: 0
Accepted
time: 0ms
memory: 35940kb
input:
300 351 285 205 155 58 266 214 95 158 223 222 255 221 244 226 191 205 247 1 43 140 87 99 224 57 63 248 55 94 242 57 128 257 59 286 187 79 67 47 57 111 162 160 169 27 184 163 51 143 149 187 31 165 177 47 221 46 38 193 129 55 187 265 266 156 147 173 247 132 59 169 56 138 149 29 274 144 293 106 283 16 ...
output:
0
result:
ok single line: '0'
Test #33:
score: -10
Wrong Answer
time: 2ms
memory: 36496kb
input:
300 330 190 3 268 235 248 286 242 82 51 89 240 11 192 290 126 244 100 298 297 87 211 102 42 46 88 111 125 232 239 56 266 40 35 186 280 40 108 282 12 84 43 153 231 164 296 194 219 280 189 258 168 292 90 288 272 250 212 146 40 1 155 123 154 36 12 198 236 149 207 154 18 118 65 40 181 177 215 75 300 167...
output:
583306918
result:
wrong answer 1st lines differ - expected: '0', found: '583306918'
Subtask #8:
score: 0
Skipped
Dependency #1:
100%
Accepted
Dependency #3:
0%