QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#798009 | #8363. interactive | L_Wave | 10 | 92ms | 9048kb | C++20 | 3.9kb | 2024-12-03 23:02:12 | 2024-12-03 23:02:13 |
Judging History
answer
// Problem: #P13098. 交互题
// Author: XZC(L_Wave)
// Language: Cpp/G++20
// Contest: Hydro
// URL: http://www.nfls.com.cn:10611/p/5472
// Memory Limit: 512 MB
// Time Limit: 2000 ms
// Create Time: not 2024-12-03 20:49:39, but 1926-08-17 11:45:14
//
// Powered by CP Editor (https://cpeditor.org)
#ifndef LOCAL
#include"interactive.h"
#else
#include <vector>
#include <cstdio>
#include <cstdlib>
#include <numeric>
std::vector<int> solve(int n);
int query(std::vector<int> vec);
#define rep0(i, n) for(int i = 0; i < (int)(n); i ++)
#define rep1(i, n) for(int i = 1; i <= (int)(n); i ++)
using namespace std;
namespace
{
const int MAXN = 500, MAXQ = 300000;
int n, ty, p[505], mat[505][505], cnt;
bool vis[505];
bool legal(const vector<int>& arr)
{
if((int)arr.size() != n) return false;
rep1(i, n) vis[i] = false;
rep0(i, arr.size()) {
if(arr[i] < 1 || arr[i] > n || vis[arr[i]]) return false;
vis[arr[i]] = true;
}
return true;
}
}
int query(vector<int> arr)
{
if(cnt == MAXQ || !legal(arr)) {
printf("WA: 0\n"); exit(0);
}
int ret = 0;
rep0(i, (int)arr.size() - 1) ret += mat[arr[i]][arr[i + 1]];
cnt ++;
return ret;
}
int main()
{
scanf("%d%d", &ty, &n);
iota(p+1,p+n+1,1);
if (ty==1)
rep1(i, n) scanf("%d", &p[i]);
rep1(i, n - 1) mat[p[i]][p[i + 1]] = mat[p[i + 1]][p[i]] = 1;
vector<int> ans = solve(n);
if(!legal(ans)) printf("WA: 1\n");
else {
int sum = 0;
rep0(i, n - 1) sum += mat[ans[i]][ans[i + 1]];
if(sum == n - 1) printf("AC: %d\n", cnt);
else printf("WA: 1\n");
}
exit(0);
}
#endif
#include <bits/stdc++.h>
#undef rep
#define rep(i, a, b) for (int i = (a), i##ABRACADABRA = (b); i <= i##ABRACADABRA; i++)
#define drep(i, a, b) for (int i = (a), i##ABRACADABRA = (b); i >= i##ABRACADABRA; i--)
using namespace std;
using ll = long long;
namespace local{
vector<int>res;
mt19937 rng(chrono::steady_clock().now().time_since_epoch().count());
int id[505],p[505],n;
long double w[505][505];
bool vis[505];
void dfs(int u){
// cout<<u<<'\n';
sort(id+1,id+n+1,[&](int x,int y){
return w[u][x]>w[u][y];
});
res.push_back(u);
vis[u]=1;
rep(v,1,n)if (!vis[id[v]]){
dfs(id[v]);
return ;
}
}
int ask(){
vector<int>Q;
rep(i,1,n)Q.push_back(p[i]);
return query(Q);
}
void adj(vector<pair<int,int>>V,long double val){
val/=V.size();
for (auto [x,y]:V)w[x][y]=w[y][x]=(w[x][y]*10+val)/11;
}
std::vector<int> solve(int _n){
n=_n;
iota(p+1,p+n+1,1);
iota(id+1,id+n+1,1);
rep(i,1,n)rep(j,1,n){
if (i^j)w[i][j]=2.l/n;
else w[i][j]=-1e9;
}
rep(i,1,12000){
shuffle(p+1,p+n+1,rng);
int x=ask();
// cout<<"$$ "<<x<<'\n';
rep(t,1,n-1)if (w[p[t]][p[t+1]]>0.9999)--x;
if (!x){
rep(t,1,n-1)if (w[p[t]][p[t+1]]<=0.9999)w[p[t]][p[t+1]]=w[p[t+1]][p[t]]=-1e9;
// rep(i,1,n)rep(j,1,n)cout<<w[i][j]<<" \n"[j==n];
continue;
}
vector<pair<int,int>>V;
rep(t,1,n-1)if (w[p[t]][p[t+1]]>0&&w[p[t]][p[t+1]]<=0.9999)V.push_back({p[t],p[t+1]});
if (x==(int)V.size()){
for (auto [x,y]:V)w[x][y]=w[y][x]=1;
V.clear();
}
// if (V.size()==1)cout<<w[V[0].first][V[0].second]<<' '<<x<<'\n';
adj(V,x);
// if (V.size()==1)cout<<w[V[0].first][V[0].second]<<'\n';
// if (x==-1){
// rep(i,1,n)cout<<p[i]<<' ';
// cout<<'\n';
// rep(i,1,n-1)if (w[p[i]][p[i+1]]>0.9999)cout<<p[i]<<' '<<p[i+1]<<' '<<w[p[i]][p[i+1]]<<'\n';
// }
// rep(i,1,n)rep(j,1,n)cout<<w[i][j]<<" \n"[j==n];
}
rep(i,1,n){
int cnt=0;
rep(j,1,n)cnt+=w[i][j]>=0.9999;
if (cnt==1){
dfs(i);
return res;
}
}
rep(i,1,n){
int cnt=0;
rep(j,1,n)cnt+=w[i][j]>0;
if (cnt==1){
dfs(i);
return res;
}
}
return vector<int>(n);
}
}
std::vector<int> solve(int n){return local::solve(n);}
Details
Tip: Click on the bar to expand more detailed information
Subtask #1:
score: 10
Accepted
Test #1:
score: 10
Accepted
time: 2ms
memory: 5900kb
input:
1 3 3 1 2
output:
12000 612855835 7113
result:
points 1.0
Test #2:
score: 10
Accepted
time: 3ms
memory: 4312kb
input:
1 30 6 28 10 9 13 4 7 1 21 15 20 27 19 5 17 2 22 12 29 23 14 30 18 3 11 24 26 16 8 25
output:
12000 612855835 537621159
result:
points 1.0
Test #3:
score: 10
Accepted
time: 7ms
memory: 5944kb
input:
1 27 24 17 15 3 13 9 6 16 14 22 7 19 25 12 1 26 23 27 10 21 8 5 18 11 20 4 2
output:
12000 612855835 966160455
result:
points 1.0
Test #4:
score: 10
Accepted
time: 7ms
memory: 6240kb
input:
1 29 24 8 7 14 19 20 4 6 1 12 18 2 10 3 23 13 26 11 22 27 9 17 16 5 21 29 25 15 28
output:
12000 612855835 646167394
result:
points 1.0
Test #5:
score: 10
Accepted
time: 7ms
memory: 4012kb
input:
1 30 9 22 10 27 8 5 23 21 2 25 6 13 30 19 17 20 4 14 29 28 24 15 11 7 12 18 26 16 3 1
output:
12000 612855835 904341262
result:
points 1.0
Test #6:
score: 10
Accepted
time: 7ms
memory: 5972kb
input:
1 27 8 6 11 20 24 7 9 25 13 19 2 3 23 15 16 4 22 21 10 18 12 27 14 5 1 17 26
output:
12000 612855835 173992498
result:
points 1.0
Test #7:
score: 10
Accepted
time: 7ms
memory: 5932kb
input:
1 27 2 5 25 13 11 12 23 24 6 18 19 21 15 17 7 10 16 20 22 27 3 4 8 14 26 1 9
output:
12000 612855835 772894146
result:
points 1.0
Test #8:
score: 10
Accepted
time: 7ms
memory: 6232kb
input:
1 27 13 11 10 27 20 23 3 25 12 24 6 2 19 9 7 17 1 5 8 26 14 16 21 15 22 4 18
output:
12000 612855835 181323461
result:
points 1.0
Test #9:
score: 10
Accepted
time: 7ms
memory: 6080kb
input:
1 27 3 15 12 14 18 27 23 6 20 26 21 5 13 19 10 9 11 17 16 4 25 7 24 2 22 1 8
output:
12000 612855835 480249695
result:
points 1.0
Test #10:
score: 10
Accepted
time: 3ms
memory: 3984kb
input:
1 29 23 7 4 10 9 16 1 14 3 17 13 19 15 8 5 22 24 29 11 12 18 25 21 2 28 26 27 20 6
output:
12000 612855835 31142540
result:
points 1.0
Subtask #2:
score: 0
Wrong Answer
Test #11:
score: 90
Accepted
time: 6ms
memory: 4304kb
input:
1 27 17 16 3 20 27 5 2 13 24 21 25 23 19 9 7 4 22 12 26 15 14 11 1 18 6 10 8
output:
12000 612855835 558749364
result:
points 1.0
Test #12:
score: 90
Accepted
time: 7ms
memory: 5940kb
input:
1 29 19 13 20 22 26 1 23 24 3 14 8 25 29 17 10 9 15 11 18 4 2 28 21 7 6 12 16 27 5
output:
12000 612855835 145445666
result:
points 1.0
Test #13:
score: 90
Accepted
time: 7ms
memory: 4296kb
input:
1 28 16 7 19 9 23 12 20 26 4 10 15 8 21 5 1 22 27 2 18 24 28 6 3 14 13 17 25 11
output:
12000 612855835 877668399
result:
points 1.0
Test #14:
score: 90
Accepted
time: 7ms
memory: 4076kb
input:
1 30 13 4 29 25 16 14 6 15 19 28 7 20 3 23 12 17 8 22 1 24 9 30 21 18 2 26 27 10 11 5
output:
12000 612855835 737974315
result:
points 1.0
Test #15:
score: 90
Accepted
time: 7ms
memory: 6236kb
input:
1 27 18 25 15 20 23 14 4 16 27 6 2 12 21 19 17 26 9 8 10 11 3 7 13 22 24 5 1
output:
12000 612855835 590934171
result:
points 1.0
Test #16:
score: 78
Acceptable Answer
time: 89ms
memory: 8824kb
input:
2 494 364 164 445 359 288 412 15 377 91 481 14 3 357 358 269 136 336 106 392 200 50 388 33 338 114 11 266 186 170 239 494 196 395 68 36 423 378 218 342 275 67 240 120 86 134 356 190 323 123 339 187 30 270 430 292 121 372 404 94 143 454 309 461 344 141 480 474 248 199 42 150 260 369 483 493 124 396 4...
output:
12000 612855835 998930322
result:
points 0.86666666670
Test #17:
score: 0
Wrong Answer
time: 92ms
memory: 9048kb
input:
2 500 468 70 339 65 443 143 75 123 220 163 390 484 489 139 392 147 183 132 202 14 19 380 310 259 179 482 85 36 232 419 285 378 137 274 376 23 321 263 217 485 387 466 94 104 164 57 185 359 42 211 40 206 418 184 458 173 441 291 11 366 428 384 223 190 374 34 275 210 171 226 408 168 88 494 204 66 481 10...
output:
0 0 0
result:
FAIL WA