04 2024 档案

摘要:题解 首先,我们知道异或运算是无进位相加,那么a^b=x我们不妨先让a=x,b=0;而a,b其余二进制位上要么同为0,要么同为1。接下来,根据题意a+b=2x,我们可知我们同时为a,b加上x/2。此时再判断a^b是否等于x即可。 code #include<bits/stdc++.h> using 阅读全文
posted @ 2024-04-07 21:23 黑屿白 阅读(10) 评论(0) 推荐(0) 编辑
摘要:原题链接 题解 链式前向星版本的欧拉回路dfs void dfs(int u){ for (int i=head[u];i>0;i=head[u]){ head[u]=Next[i]; //走过的路直接跳过 dfs(to[i]); } que[l++]=u; } 接下来的难点是如何字典序搜索。我们在 阅读全文
posted @ 2024-04-06 16:25 黑屿白 阅读(14) 评论(0) 推荐(0) 编辑
摘要:原题的无向图等价于上图所示的联通图,此时我们要求的就是起始位置到终止位置最少要经过几个有颜色的结点。 code #include<bits/stdc++.h> using namespace std; const int N=4e5+5; int vis[N]; int main(){ // fre 阅读全文
posted @ 2024-04-06 14:49 黑屿白 阅读(10) 评论(0) 推荐(0) 编辑
摘要:原题链接 题解 我们将一个单词的首字母和尾字母看成两个结点,每个单词代表一条有向边。 此时题意为:给你一个有向图,让你找到一条路径,使得仅仅只经过每条边一次。 那么题意就是让我们求一个有向图的欧拉回路。 code #include<bits/stdc++.h> using namespace std 阅读全文
posted @ 2024-04-05 15:58 黑屿白 阅读(14) 评论(0) 推荐(0) 编辑
摘要:原题链接 题解 dijkstra算法的应用。相同颜色权值为0;不同颜色权值为1;有颜色到无颜色权值为2。其中不能连续两步走无颜色结点,即该情况需要特别考虑。 code #include<bits/stdc++.h> using namespace std; const int MAX=1e9; in 阅读全文
posted @ 2024-04-05 14:41 黑屿白 阅读(35) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示