G. SlavicG‘s Favorite Problem(DFS序) 2022绵阳H(思维构造),M(并查集)
创始人
2024-02-11 02:34:38
0

最近组队vp大概都在稳铜位置,水平和预选赛排在300-400的队伍相当,加油,到最后了。
G. SlavicG’s Favorite Problem
作为div4的最后一题虽然没有算法难度但是把思维拉满了。

题意:给定一棵树,每个边都边权,现在给定源点a和终点b,请问你能否找到一种方案使得在从a走到b只是用一次传送的前提下使得走过的路径上所有的边权异或和为0。能输出YES,反之输出NO

传送:从一个点到任意一个不是b的点上的。

思路:首先考虑到从a点直接深搜,如果能够到b的时候权值为0自然是yes。

那么如果不能呢?我想大概是需要传送操作来结合两段路径才行,也就是说,选择两段路径,一段起点是a,一段终点是b,这两段路径的权值异或和为0即可。

那么维护这样的权值异或和显然做两次DFS深搜即可,一次a为根,一次b为根。但是要怎么确保这两段是合法的呢,或者说什么情况下是不合法的呢。

既然b是题目意义上的终点,显然是不可以重复走过b的。考虑把b为根的所有路径的异或和存储,然后在a为根的情况下,找到所有不包含b的路径,只要能在这两种意义下找到两条异或和一样的路径即可。

那么不包含b的路径怎么找呢,这里用dfs序,如果a为根时,b子树内的节点dfs序必定比b大,而要论子树内部dfs序的最大值,b是要大于其内部所有节点的。这样就可以轻松判断了。

#include
using namespace std;
#define endl '\n'
typedef long long ll;
const int N=1e5+100;
struct node
{int nex,to,w;
}edge[N<<1];
int head[N],tot;
int n,a,b;
int dfn[N][2],mdfn[N][2];
int val[N][2],cnt;
void add(int from,int to,int w)
{edge[++tot].to=to;edge[tot].nex=head[from];head[from]=tot;edge[tot].w=w;
}
void DFS(int now,int fa,int falg)
{dfn[now][falg]=++cnt;for(int i=head[now];i;i=edge[i].nex){int to=edge[i].to;if(to==fa)continue;val[to][falg]=(val[now][falg]^edge[i].w);DFS(to,now,falg);}mdfn[now][falg]=cnt;
}
void init()
{for(int i=0;i<=n;i++)head[i]=dfn[i][1]=dfn[i][0]=mdfn[i][0]=mdfn[i][1]=0;for(int i=0;i<=tot;i++)edge[i].nex=edge[i].to=edge[i].w=0;tot=0;cnt=0;
}
int main()
{cin.tie(0);cout.tie(0);ios::sync_with_stdio(0);int t;for(cin>>t;t;t--){cin>>n>>a>>b;for(int i=1,u,v,w;i<=n-1;i++){cin>>u>>v>>w;add(u,v,w);add(v,u,w);}cnt=val[a][0]=0;DFS(a,0,0);cnt=val[b][1]=0;DFS(b,0,1);if(!val[b][0])cout<<"Yes"<mapmp;for(int i=1;i<=n;i++){if(i==b)continue;mp[val[i][1]]=1;}bool falg=false;for(int i=1;i<=n;i++){if(dfn[i][0]>=dfn[b][0]&&mdfn[i][0]<=mdfn[b][0])continue;if(mp.find(val[i][0])!=mp.end()){falg=true;break;}}if(falg)cout<<"Yes"<

M. Rock-Paper-Scissors Pyramid(并查集,思维)

题意:给定s代表剪刀,p代表布,r代表石头,给定一个只含有psr的串,相邻的两个字母根据剪刀石头布的规则来产生胜者,不断决胜可以将整个game产生的出手过程视为金字塔。

问,金字塔顶端谁赢。

思路:我们发现每次被吞并的都是相对位置在左侧的字母所以并查集吞就可以了。至于可以吞掉的字母就是这个字母能赢得和等于这个字母的。

#include 
using namespace std;
#define endl '\n'
const int N = 1e6+100;
int dsu[N];
char s[N];
int tfind(int x)
{if(x==dsu[x])return x;return dsu[x]=tfind(dsu[x]);
}
void tmerge(int x,int y)
{x=tfind(x);y=tfind(y);if(x==y)return ;dsu[y]=x;
}
signed main()
{cin.tie(0);cout.tie(0);ios::sync_with_stdio(0);int t;mapmp;mp['S']='P';mp['P']='R';mp['R']='S';for(cin>>t;t;t--){cin>>(s+1);int n=strlen(s+1);for(int i=1;i<=n;i++)dsu[i]=i;for(int i=2;i<=n;i++){if(mp[s[i]]==s[i-1]||s[i]==s[i-1]){int j=i-1;while(j>0&&(mp[s[i]]==s[j]||s[i]==s[j])){tmerge(j-1,j);j=tfind(j);}}}for(int i=1;i<=n;i++){if(dsu[i]==i){cout<

Life is Hard and Undecidable, but

题意:在二维的图上,如果一个空位置周围有且仅有三个点则空位置会出生一个点,如果一个点周围不是2或者3个且仅2或者3个点则这个点会在下次回合消失,否则其将继续存活。

现在想要再n论后平面上无点存在,那么应该构造一个什么样的图,请你输出。
思路:这个题如果想到正确思路则是一个div2的A级别,但是想不到就完犊子了
直接构造n*2长度的斜线即可。

#include 
using namespace std;
#define int long long
#define endl '\n'
const int N = 2e6+100;
char ch[N];
int s[N];
signed main()
{cin.tie(0);cout.tie(0);ios::sync_with_stdio(0);int n;cin>>n;int x1=1,y1=1;cout<cout<

相关内容

热门资讯

在第三方平台买的票不能用还不给... 转自:北京日报客户端漫画/李晓军“网上买了门票,到了现场进不去。”前不久,北京李女士一家去陕西西安旅...
救人考生参加补考,是对世道人心... 转自:中工网原标题:救人考生参加补考,是对世道人心的抚慰5月10日,山东城市服务职业学院2022级一...
庄浪:巾帼家政进社区 织密便民... 庄浪:巾帼家政进社区 织密便民服务网每日甘肃网5月15日讯 据平凉日报报道(记者石艳 张沛杰)“我租...
中美贸易谈判后的人民币汇率 冉学东中美贸易谈判一路披荆斩棘,轻舟已过万重山。美国政府5月12日发布行政命令称,自5月14日起,通...
秘鲁4月份税收收入增长了17.... 转自:中国税务网   据《秘鲁人报》报道,国家海关和税务管理局(Sunat)报告称,2025年4月,...
浙江最大室内滑雪场杭州热雪奇迹... 5月15日,据融创官微消息,近日,浙江省最大体量旗舰型室内滑雪场项目——杭州热雪奇迹室内滑雪场正式落...
杉杉股份涨2.01%,成交额1... 5月15日,杉杉股份(维权)盘中上涨2.01%,截至10:38,报7.61元/股,成交1.78亿元,...
苏州低空,“机”遇绽放 中新网江苏新闻5月14日电(记者 钟升)号称“中国最强地级市”的苏州正在发力低空经济。目前苏州全市已...
编梁木拱桥 编者的话:丰富多彩的中国传统非遗,是中国灿烂技能历史的缩影。我国职业院校挖掘和利用地方特色,把具有地...
【校园动态】龙首高级中学举办校... 金昌新闻网—金昌日报讯(记者柯玉栋)5月12日,市龙首高级中学举办以“‘音’梦而声 ‘声’耀未来”为...
墨西哥对不锈钢洗涤槽启动反倾销... 墨西哥经济部日前发布公告称,应墨西哥企业申请,对原产于中国的不锈钢洗涤槽启动反倾销第二次日落复审调查...
聂文慧率团访问阿根廷 5月7日,中国贸促会副会长聂文慧率团访问阿根廷。邀请阿方出席第三届中国国际供应链促进博览会、第十八届...
晶晨股份跌2.04%,成交额1... 5月15日,晶晨股份盘中下跌2.04%,截至11:05,报71.44元/股,成交1.55亿元,换手率...
普利退跌2.25%,成交额56... 5月15日,普利退(维权)盘中下跌2.25%,截至11:00,报0.87元/股,成交567.61万元...
龙建股份涨2.13%,成交额7... 5月15日,龙建股份盘中上涨2.13%,截至10:51,报3.84元/股,成交7996.46万元,换...
迪拜金融科技峰会聚焦金融转型 来源:人民网-国际频道 人民网迪拜5月14日电 (记者管克江、张志文)5月13日,由迪拜国际金融中心...
吴斌接受审查调查 据上海市纪委监委5月14日消息:上海市国防动员办公室副主任吴斌涉嫌严重违纪违法,目前正接受上海市纪委...
宁夏首笔河湖生态再生水利用置换... 转自:经济日报新闻客户端  5月14日,宁夏首笔河湖生态再生水利用置换用水权交易活动在银川市市民大厅...
沪一医院接诊!持续3天腹痛呕吐... 长发公主让很多女孩心生向往但“长发公主综合征”你听说过吗?近日国家儿童医学中心、上海交通大学医学院附...
1至4月全国铁路发送旅客14.... 据“中国铁路”微信公众号消息,1至4月,全国铁路发送旅客14.6亿人次、同比增长5.9%,创同期历史...