2024.10.10 鲜花(原 I 的交互程序改)
Roads in E City
夜曲
一群嗜血的蚂蚁 被腐肉所吸引 我面无表情 看孤独的风景 失去你 爱恨开始分明 失去你 还有什么事好关心 当鸽子不再象征和平 我终于被提醒 广场上喂食的是秃鹰 我用漂亮的押韵 形容被掠夺一空的爱情 啊 乌云开始遮蔽 夜色不干净 公园里 葬礼的回音 在漫天飞行 送你的白色玫瑰 在纯黑的环境凋零 乌鸦在树枝上诡异的很安静 静静听 我黑色的大衣 想温暖你日渐冰冷的回忆 走过的 走过的 生命 啊 四周弥漫雾气 我在空旷的墓地 老去后还爱你 为你弹奏肖邦的夜曲 纪念我死去的爱情 跟夜风一样的声音 心碎的很好听 手在键盘敲很轻 我给的思念很小心 你埋葬的地方叫幽冥 为你弹奏肖邦的夜曲 纪念我死去的爱情 而我为你隐姓埋名 在月光下弹琴 对你心跳的感应 还是如此温热亲近 怀念你那鲜红的唇印 那些断翅的蜻蜓 散落在这森林 而我的眼睛 没有丝毫同情 失去你 泪水混浊不清 失去你 我连笑容都有阴影 风在长满青苔的屋顶 嘲笑我的伤心 像一口没有水的枯井 我用凄美的字型 描绘后悔莫及的那爱情 为你弹奏肖邦的夜曲 纪念我死去的爱情 跟夜风一样的声音 心碎的很好听 手在键盘敲很轻 我给的思念很小心 你埋葬的地方叫幽冥 为你弹奏肖邦的夜曲 纪念我死去的爱情 而我为你隐姓埋名 在月光下弹琴 对你心跳的感应 还是如此温热亲近 怀念你那鲜红的唇印 一群嗜血的蚂蚁 被腐肉所吸引 我面无表情 看孤独的风景 失去你 爱恨开始分明 失去你 还有什么事好关心 当鸽子不再象征和平 我终于被提醒 广场上喂食的是秃鹰 我用漂亮的押韵 形容被掠夺一空的爱情
给个链接 this
首先考虑询问,发现
容易想到如何判断一条边桥(包括后面的指将修过的边单拿出来组成的图的桥):将其断开,在左右端点分别算
考虑怎么构造桥,显然是将不是桥的断开,剩下的一定是桥,并且构成了一棵树,因为边一定是
考虑我们断开的边其中的
给一个交互库吧:
Code
#include<bits/stdc++.h> // 交互题什么的最讨厌了 using namespace std; using llt=long long; using llf=long double; using ull=unsigned long long; mt19937 rnd(ull(new char)*ull(new char)); const int N=1e5+3; struct Gph{ int hd[N],to[N<<1],nt[N<<1],wt[N<<1],tot=1; void Add(int u,int v,int w){wt[++tot]=w,to[tot]=v,nt[tot]=hd[u],hd[u]=tot;} void ADD(int u,int v,int w){Add(u,v,w),Add(v,u,w);} #define For_to(i,u,v,g) for(int i=g.hd[u],v=g.to[i];i;i=g.nt[i],v=g.to[i]) }g; bool p[N]; int ss; int ca[N],cb[N]; bool wt[N],vis[N]; bool Get(int u){ p[u]=1; bool fg=0; if(u==ss) return 1; For_to(i,u,v,g) if(!vis[i>>1]&&g.wt[i]&&!p[v]) fg|=Get(v); return fg; } int main(){ ios::sync_with_stdio(false),cin.tie(nullptr),cout.tie(nullptr); cout<<1<<endl; int n=6,m=10; cout<<n<<' '<<m<<endl; for(int i=1;i<n;++i){cb[i]=rnd()%i+1; g.ADD(ca[i]=i+1,cb[i],wt[i]=1); cout<<i+1<<' '<<cb[i]<<endl;} for(int i=n;i<=m;++i){while(ca[i]==cb[i]) ca[i]=rnd()%n+1,cb[i]=rnd()%n+1; g.ADD(ca[i],cb[i],wt[i]=rnd()%2),cout<<ca[i]<<' '<<cb[i]<<endl;} while(1){ char opt; cin>>opt; if(opt=='-'){int i; cin>>i; assert(!vis[i]); vis[i]=1;} else if(opt=='+'){int i; cin>>i; assert(vis[i]); vis[i]=0;} else if(opt=='?'){ int s=rnd()%n+1; cin>>ss; memset(p,0,sizeof(p)),cout<<Get(s)<<endl; } else{ assert(opt=='!'); for(int i=1;i<=n;++i){int w; cin>>w; assert(w==wt[i]);} return 0; } } }
用管道做 OI 交互即可,可以看 this
P
本文来自博客园,作者:5k_sync_closer,转载请注明原文链接:https://www.cnblogs.com/xrlong/p/18456314
版权声明:本作品采用 「署名-非商业性使用-相同方式共享 4.0 国际」许可协议(CC BY-NC-SA 4.0) 进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了