【考后总结】6 月西安 NOI 模拟赛 5
1.【考后总结】4月清北营模拟赛 12.【考后总结】4 月清北营模拟赛 23.【考后总结】4 月清北营模拟赛 34.【考后总结】6 月西安 NOI 模拟赛 15.【考后总结】6 月西安 NOI 模拟赛 26.【考后总结】6 月西安 NOI 模拟赛 37.【考后总结】6 月西安 NOI 模拟赛 4
8.【考后总结】6 月西安 NOI 模拟赛 5
9.【考后总结】6 月 NOI 模拟赛 610.【考后总结】7 月 NOI 模拟赛 111.【考后总结】7 月 NOI 模拟赛 212.【考后总结】7 月 NOI 模拟赛 313.【考后总结】8 月 CSP-S 模拟赛 114.【考后总结】8 月 CSP-S 模拟赛 215.【考后总结】8 月 CSP-S 模拟赛 316.【考后总结】8 月 CSP-S 模拟赛 417.【考后总结】8 月 CSP-S 模拟赛 518.【考后总结】8 月 CSP-S 模拟赛 619.【考后总结】8 月 CSP-S 模拟赛 720.【考后总结】8 月 CSP-S 模拟赛 821.【考后总结】8 月 CSP-S 模拟赛 922.【考后总结】8 月 CSP-S 模拟赛 1023.【考后总结】9 月 CSP-S 模拟赛 124.【考后总结】9 月 CSP-S 模拟赛 225.【考后总结】9 月 CSP-S 模拟赛 326.【考后总结】9 月 CSP-S 模拟赛 427.【考后总结】9 月 CSP-S 模拟赛 528.【考后总结】9 月 CSP-S 模拟赛 629.【考后总结】9 月 CSP-S 模拟赛 730.【考后总结】9 月 CSP-S 模拟赛 831.【考后总结】10 月 CSP-S 模拟赛 132.【考后总结】10 月 CSP-S 模拟赛 233.【考后总结】10 月 CSP-S 模拟赛 334.【考后总结】10 月 CSP-S 模拟赛 435.【考后总结】10 月 CSP-S 模拟赛 536.【考后总结】10 月 CSP-S 模拟赛 637.【考后总结】10 月 CSP-S 模拟赛 738.【考后总结】10 月 CSP-S 模拟赛 839.【考后总结】10 月 NOIP 模拟赛 140.【考后总结】10 月 NOIP 模拟赛 241.【考后总结】10 月 NOIP 模拟赛 342.【考后总结】10 月 NOIP 模拟赛 443.【考后总结】11 月 NOIP 模拟赛 144.【考后总结】11 月 NOIP 模拟赛 245.【考后总结】11 月 NOIP 模拟赛 346.【考后总结】11 月 NOIP 模拟赛 447.【考后总结】11 月 NOIP 模拟赛 548.【考后总结】11 月 NOIP 模拟赛 649.【考后总结】11 月 NOIP 模拟赛 750.【考后总结】12 月北京省选模拟赛 151.【考后总结】12 月北京省选模拟赛 252.【考后总结】12 月 NFLS 省选模拟赛 153.【考后总结】12 月 NFLS 省选模拟赛 254.【考后总结】1 月 NFLS 省选模拟赛 155.【考后总结】1 月 NFLS 省选模拟赛 256.【考后总结】1 月 NFLS 省选模拟赛 357.【考后总结】1 月 NFLS 省选模拟赛 458.【考后总结】1 月 NFLS 省选模拟赛 559.【考后总结】1 月 NFLS 省选模拟赛 660.【考后总结】1 月 NFLS 省选模拟赛 761.【考后总结】1 月 NFLS 省选模拟赛 862.【考后总结】2 月 NFLS 省选模拟赛 163.【考后总结】2 月 NFLS 省选模拟赛 264.【考后总结】2 月 NFLS 省选模拟赛 365.【考后总结】2 月 NFLS 省选模拟赛 466.【考后总结】2 月 NFLS 省选模拟赛 567.【考后总结】2 月 NFLS 省选模拟赛 668.【考后总结】2 月 NFLS 省选模拟赛 76.24 冲刺国赛模拟 24#
T2 简单图论题#
原题:QOJ-8140 Customs Controls 2
构造题。
这个限制可以进一步加强到对于每个节点 , 的路径权值都相等,定义为 。
于是对 连边的两个节点的 一定相等,进而可以把所有相等的缩到一起,且这些点直接不能连边(点权至少是 ),这样可以对处理过后的图跑最长路,如果存在环一定无解。
最后的答案就是任意找一条连向 的边 ,其中 。
点击查看代码
int t;
int n,m;
vector<int> E1[maxn],E2[maxn],E3[maxn];
int bel[maxn],id[maxn];
int find(int x){
if(x==bel[x]) return x;
return bel[x]=find(bel[x]);
}
int deg[maxn];
int f[maxn],g[maxn],cnt;
int main(){
freopen("dag.in","r",stdin);
freopen("dag.out","w",stdout);
t=read();
while(t--){
n=read(),m=read();
for(int i=1;i<=n;++i) E1[i].clear(),E2[i].clear(),E3[i].clear();
for(int i=1;i<=m;++i){
int u=read(),v=read();
E1[u].push_back(v),E2[v].push_back(u);
}
for(int i=1;i<=n;++i) bel[i]=i,id[i]=0,deg[i]=0;
for(int u=1;u<=n;++u){
for(int i=1;i<(int)E2[u].size();++i){
int v1=E2[u][i-1],v2=E2[u][i];
int f1=find(v1),f2=find(v2);
// printf("%d %d %d %d\n",v1,v2,f1,f2);
bel[f2]=f1;
}
}
int tot=0;
for(int i=1;i<=n;++i){
// printf("%d %d\n",i,find(i));
if(find(i)==i) id[i]=++tot;
}
bool chk=1;
for(int u=1;u<=n;++u){
for(int v:E1[u]){
if(find(u)==find(v)) chk=0;
else{
E3[id[find(u)]].push_back(id[find(v)]);
++deg[id[find(v)]];
}
}
}
queue<int> q;
if(deg[1]) chk=0;
f[1]=1;
q.push(1);
cnt=0;
while(!q.empty()){
int u=q.front();
q.pop();
++cnt;
for(int v:E3[u]){
f[v]=f[u]+1;
--deg[v];
if(!deg[v]) q.push(v);
}
}
if(cnt<tot) chk=0;
g[1]=1;
for(int v=2;v<=n;++v){
int u=E2[v][0];
g[v]=f[id[find(v)]]-f[id[find(u)]];
}
if(!chk) printf("No\n");
else{
printf("Yes\n");
for(int i=1;i<=n;++i) printf("%d ",g[i]);
printf("\n");
}
}
return 0;
}
作者:SoyTony
出处:https://www.cnblogs.com/SoyTony/p/Simulation_Problems_of_NOI_in_Xian_June_5.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效