上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 36 下一页
摘要: 写文件和读文件 freopen("1.in", "r", stdin); //读 freopen("1.out", "w", stdout); //写 freopen("xx//1.out", "w", stdout); //表示在xx文件下面写1.out文件 数据都在$xz$文件下面 造读入数据 阅读全文
posted @ 2021-10-18 14:48 hunxuewangzi 阅读(77) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目思路 这个题意显然不当人,要转换下题意就能变的简单 即所有节点的父亲节点是否再同一条链上,有很多种写法, 最简便的就是利用dfs序判断即可 代码 #include<bits/stdc++.h> #define fi first #define se second #define deb 阅读全文
posted @ 2021-10-14 16:57 hunxuewangzi 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目思路 仔细分析下就会发现,题目的答案就是补图的连通块个数-1 主要是如何求补图的连通块数量是个问题 要枚举没有加入联通块的点来操作 代码 #include<bits/stdc++.h> #define fi first #define se second #define debug c 阅读全文
posted @ 2021-10-14 14:43 hunxuewangzi 阅读(65) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目思路 对于这种区间反转问题,要把他想到是变为长度为2的区间反转,类比于冒泡排序 因为所有的反转都能用冒泡排序的思想实现 如果字符不同肯定不行 然后如果某个字符出现次数大于1的话肯定可以,因为可以一直拿着他动,去改变其他人 然后就是每个字符出现一次的情况,每次交换两个相邻的数就改变了逆序 阅读全文
posted @ 2021-10-13 19:55 hunxuewangzi 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目思路 第一数不是1就是n,可以确定他放哪里最优 如果他是1,那么第二个点不是2 就是n 如果他是2,那么第二个点不是1就是n-1 for一边即可确定答案 代码 #include<bits/stdc++.h> #define fi first #define se second #def 阅读全文
posted @ 2021-10-12 13:52 hunxuewangzi 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目思路 大佬的一句话 只考虑钦定的点连成树然后dp 其实就是每个点和根节点连边,那么只考虑那条链上的所有节点 最多$n*k$个点 $dp[i][node]$表示$node$节点颜色为$i$的方案数 注意$num[i]$数组不要提前取模,对于$a^b$的形势一定要小心取模,找了一年bug 阅读全文
posted @ 2021-10-09 17:18 hunxuewangzi 阅读(157) 评论(0) 推荐(1) 编辑
摘要: 题目链接 题目思路 交互题十有八九是二分 这个是对边进行dfs序,然后二分边求出那条最大的边 代码 #include<bits/stdc++.h> #define pii pair<int,int> #define fi first #define se second #define debug c 阅读全文
posted @ 2021-10-04 20:46 hunxuewangzi 阅读(90) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目思路 这个题目的思路还是没有那么的难 首先如果要分成偶数个块,那么这个树的总异或和一定要为0,并且如果总异或和为0,那么必定可以分为两个联 通块,如果分为奇数个的话,那么就看是否可以分为3个即可,就是先删除一个深度最大的联通块的异或和为总异 或和,然后再dfs判断是否还有另外一个,没想 阅读全文
posted @ 2021-10-04 16:55 hunxuewangzi 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目思路 第一眼以为是二分,但是发现倒了 那么就肯定是和二进制有关 其实差不多能发现性质 就是必须为偶数,并且这个区间的第k位二进制全部为1,且位数大于k位的二进制数,异或起来都为0就行 但是感觉写起来没那么简单,看了一下一个大佬的写法,一下就解决了 我的复杂度多了一个log,其实可以不用 阅读全文
posted @ 2021-10-04 16:26 hunxuewangzi 阅读(109) 评论(1) 推荐(0) 编辑
摘要: 题目链接 题目思路 官方题解如下 一个比较容忽视的点,就是如果k位只有一种并且有多个,那么就可以分给两组 代码 #include<bits/stdc++.h> #define pii pair<int,int> #define fi first #define se second #define d 阅读全文
posted @ 2021-10-03 21:17 hunxuewangzi 阅读(47) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 36 下一页