QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#540982 | #8943. Challenge Matrix Multiplication | ucup-team3510# | RE | 3ms | 9956kb | C++20 | 1.2kb | 2024-08-31 18:16:29 | 2024-08-31 18:16:30 |
Judging History
answer
#include <bits/stdc++.h>
#define N 1000011
using namespace std;
int n,m;
vector<int> G[N];
queue<int> q;int in[N],ord[N],clk,cur[N],col[N],k;
vector<vector<int> > v;
void dfs(int u,int c)
{//printf("dfs(%d,%d)\n",u,c);
col[u]=c;v[c].push_back(u);
if(cur[u]==G[u].size())return;
dfs(G[u][cur[u]++],c);
}
int dep[N],suf[N],to[N],ans[N];
int main()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=m;++i)
{
int u,v;scanf("%d%d",&u,&v);G[u].push_back(v);++in[v];
}
for(int i=1;i<=n;++i)
{
for(int _=0;_<(int)G[i].size()-in[i];++_)
{
v.push_back(vector<int>());
dfs(i,k++);
}
}
for(int i=1;i<=n;++i)if(!in[i])q.push(i);
while(!q.empty())
{
int p=q.front();q.pop();
ord[++clk]=p;
for(int v:G[p])if(!--in[v])q.push(v);
}
for(int i=0;i<k;++i)
{
// printf("chain %d:",i);for(int x:v[i])printf("%d ",x);putchar(10);
for(int i=1;i<=n;++i)dep[i]=v[i].size();
for(int j=0;j<v[i].size();++j)dep[v[i][j]]=j;
for(int j=v[i].size()-1;~j;--j)suf[j]=suf[j+1]+(col[v[i][j]]==i);
for(int _=n;~_;--_)
{
int u=ord[_];
for(int v:G[u])dep[u]=min(dep[u],dep[v]);
}
for(int i=1;i<=n;++i)ans[i]+=suf[dep[i]];
}
for(int i=1;i<=n;++i)printf("%d ",ans[i]);putchar(10);
fclose(stdin);fclose(stdout);return 0;
}
詳細信息
Test #1:
score: 100
Accepted
time: 3ms
memory: 9928kb
input:
4 6 1 3 2 3 2 4 1 2 1 3 1 3
output:
4 3 1 1
result:
ok 4 number(s): "4 3 1 1"
Test #2:
score: 0
Accepted
time: 2ms
memory: 9956kb
input:
5 7 1 4 1 5 1 2 2 4 3 4 2 5 1 4
output:
4 3 2 1 1
result:
ok 5 number(s): "4 3 2 1 1"
Test #3:
score: -100
Runtime Error
input:
100 900 89 90 34 35 45 46 97 98 41 42 59 61 19 20 25 29 2 3 28 29 54 55 77 78 69 74 60 61 43 44 13 14 92 93 65 66 68 69 72 73 78 81 54 56 55 60 14 15 9 10 92 93 10 11 18 19 16 17 97 98 76 77 39 40 71 72 7 8 63 64 7 8 16 24 13 24 83 84 90 91 1 4 4 5 96 97 81 82 91 92 80 81 66 67 19 20 3 4 9 10 47 48 ...