![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
题解
Robin_w2321
这个作者很懒,什么都没留下…
展开
-
A. Tenzing and Tsondu(数学,贪心,二叉搜索树)
【代码】A. Tenzing and Tsondu(贪心,二叉搜索树)原创 2023-07-31 10:48:25 · 200 阅读 · 0 评论 -
Bzoj3687简单题(bitset)
题意给定一个含nnn(n<1000n<1000n<1000)个正整数(Σa\Sigma{a}Σa≤2e6≤2e6≤2e6)的集合,求其子集和的异或和。思路枚举子集显然是会超时的,考虑换一种思路。注意到集合内数的总和范围不是很大,所以可以考虑从值域下手,即判断每种可能的和sss是否会对答案产生贡献,因为仅当sss出现次数为奇数s才会产生贡献,所以只需记录每个sss出现的次数。这时,神奇的bitset就派上用场了,用bitset的第sss位记录和sss是否对答案产生贡献,最后把能产原创 2021-11-09 10:45:23 · 232 阅读 · 0 评论 -
CF1592C Bakry and Partitioning
题意给定一棵有nnn个节点的树,求删去111~kkk−-−111条边后,是否能让形成的各个连通块的异或和相同。做法令所有点的异或和为mmm,观察发现当m=0m=0m=0时,删去任意一条边都是可行方案;当m!=0m!=0m!=0时,删去边后得到的各个连通块的异或和都是mmm。考虑上述第二种情况,我们发现此时连通块的个数一定是奇数,所以至少要删去两条边,所以当k=2k=2k=2时显然是无法符合题意的。我们还可以发现连通块的个数一定是3个,因为大于3个时可以通过合并任意偶数个连通块来使个数变成3个。原创 2021-10-09 15:31:16 · 129 阅读 · 0 评论 -
CF1575A Another Sorting Problem
题意给nnn个长度为mmm的stringstringstring型数组按照如下规则排序:对于偶数位按字典序升序排序;对于奇数位按字典序降序排序。做法显然是不容易构造出一个可行的自定义cmp函数的。于是可以想到对题意进行转化,即考虑是否可以把两种情况归并为一种情况。考虑将降序排序转化成升序排序,可以将奇数位上的字母c进行转化:‘A’->‘Z’,‘Z’->‘A’,即变成'Z'-(c-'A')。然后就可以统一进行排序了。代码#include<cstdio>原创 2021-10-07 16:07:23 · 222 阅读 · 0 评论 -
P6560 [SBCOI2020] 时光的流逝(博弈论,拓扑排序)
题目链接思路显然这是道博弈论的题,而且是图上的。我们可以在图上标记必胜点和必败点,显然终点是必败点,所有没有出边的点是必败点。我们可以发现规律:能到必败点的一定是必胜点;只能到必胜点的是必败点。起点状态未知,终点状态已知,所以我们可以从已知的必败点开始按照拓扑序反向bfs,判断每个点的状态。代码1(我有点没搞明白)#include<cstdio>#include<queue>#include<cstring>#define ri register原创 2021-07-08 20:15:45 · 219 阅读 · 0 评论 -
P1488 肥猫的游戏(博弈论)
题目链接思路通过对四边形、五边形、六边形的模拟我们可以知道,野猫是否能赢只与黑色三角形的位置有关,我们只需要知道黑色三角形的每条边各需要切多少次才能成为裸露的,显然有几个顶点就需切几下,这个操作很简单,详细见代码。然后我们就可以找规律了,我们用(a,b,c)表示黑色三角形的三边外分别有a,b,c个顶点。显然(0,0,k),(0,k,0),(k,0,0)(k为任意正整数)这三种状态是必胜态。(注意这一类不可包括在下一类当中)显然(0,1,1),(1,0,1),(1,1,0)是必败态。(0,b,c原创 2021-07-03 10:59:51 · 407 阅读 · 0 评论 -
UVA1343 旋转游戏 The Rotation Game(IDA*)
题目链接(原题地址链接)思路这是一道比较显然的IDA*题,只是对读入预处理及操作处理比较麻烦注意剪枝:排除等效分支。代码#include<cstdio>#define ri register intusing namespace std;int a[8][8];int n[25],tong[10];char ans[100];char c[9]={'\0','A','B','C','D','E','F','G','H'};int fan[9]={0,6,5,8,7,2原创 2021-07-02 22:00:04 · 174 阅读 · 1 评论 -
P3959 [NOIP2017 提高组] 宝藏(随机化贪心)
题目链接思路可以利用random_shuffle()将打通宝藏屋的顺序随机出来,然后贪心求解即可。即 假如要打通第i个宝藏屋,那么从已打通的宝藏屋中选出打通道路花费最小的即可。代码#include<cstdio>#include<cstring>#include<algorithm>#define int long long#define ri register int#define min(a,b) a<b?a:b#define inf原创 2021-06-29 20:19:10 · 213 阅读 · 0 评论 -
P3959 [NOIP2017 提高组] 宝藏(状压DP)
#include#include#include#define ri register int#define min(a,b) a<b?a:b#define max(a,b) a>b?a:busing namespace std;int n,m,ans,maxd;int w[15][15];int f[15][1<<13];int Accessible[1<<13];int pd[15],flag[15],d[15];int s[1<<原创 2021-06-23 17:26:18 · 190 阅读 · 0 评论 -
P2831 [NOIP2016 提高组] 愤怒的小鸟
题目链接正解O(Tn22n)把所有可能的抛物线都枚举出来,然后DP,保证这些抛物线不重复经过某个点。注意精度!#include<cstdio>#include<cstring>#define ri register int#define min(a,b) a<b?a:b#include<cmath>using namespace std;const double ep=1e-6;double x[18],y[18];int dp[1&l原创 2021-06-06 16:54:57 · 181 阅读 · 0 评论 -
P3226 [HNOI2012]集合选数
题目描述《集合论与图论》这门课程有一道作业题,要求同学们求出{1, 2, 3, 4, 5}的所有满足以 下条件的子集:若 x 在该子集中,则 2x 和 3x 不能在该子集中。同学们不喜欢这种具有枚举性 质的题目,于是把它变成了以下问题:对于任意一个正整数 n<=100000,如何求出{1, 2,…, n} 的满足上述约束条件的子集的个数(只需输出对 1,000,000,001 取模的结果),现在这个问题就 交给你了。输入格式只有一行,其中有一个正整数 n,30%的数据满足 n<=20。原创 2021-06-06 09:32:45 · 218 阅读 · 2 评论 -
P3870 [TJOI2009]开关(分块)
http://hzwer.com/8053.html原创 2021-02-03 11:46:07 · 205 阅读 · 0 评论 -
P2597 [ZJOI2012]灾难(拓扑、LCA)
题目链接题目简述给你食物链中所有生物的食物(有向无环图DAG),现在问,如果每个生物i消失了会有多少生物也随之消失。思路我们很容易想到拓扑,确实纯拓扑也可以做(注意:最开始是单个生物入队,不是入度为零的入队),但是会超时。我们可以深入思考一下,注意到如果要使一种生物灭亡,那么一定要他的食物都灭亡,也就是说,某生物的食物都灭亡 推出 该生物灭亡,于是我们可以构建一棵树,这棵树中的父亲节点灭亡了,那么他的儿子节点都会灭亡。所以结果就是某节点的子树大小。代码#include<cstdio&原创 2021-01-12 17:14:11 · 147 阅读 · 0 评论 -
P1967 [NOIP2013 提高组] 货车运输(倍增+lca)
题目描述A 国有 n 座城市,编号从 1 到 n,城市之间有 m 条双向道路。每一条道路对车辆都有重量限制,简称限重。现在有 q 辆货车在运输货物, 司机们想知道每辆车在不超过车辆限重的情况下,最多能运多重的货物。输入格式第一行有两个用一个空格隔开的整数 n,m,表示 A 国有 n 座城市和 m 条道路。接下来 m 行每行三个整数 x, y, z每两个整数之间用一个空格隔开,表示从 x 号城市到 y 号城市有一条限重为 z 的道路。注意: x ≠ y,两座城市之间可能有多条道路 。接下来一行有原创 2021-01-02 08:59:58 · 528 阅读 · 2 评论 -
P2602 [ZJOI2010]数字计数(特殊做法)
题目描述给定两个正整数 a 和 b,求在 [a,b]中的所有整数中,每个数码(digit)各出现了多少次。输入格式仅包含一行两个整数 a,b含义如上所述。输出格式包含一行十个整数,分别表示 0∼9 在 [a,b] 中出现了多少次。输入输出样例输入1 99输出9 20 20 20 20 20 20 20 20 20说明/提示数据规模与约定对于 30% 的数据,保证 a≤b≤106;对于 100% 的数据,保证 1≤a≤b≤1012。#include<cstdio&g原创 2020-12-12 16:51:40 · 155 阅读 · 0 评论 -
P4281 [AHOI2008]紧急集合 / 聚会(LCA)
题目描述欢乐岛上有个非常好玩的游戏,叫做“紧急集合”。在岛上分散有N个等待点,有N-1条道路连接着它们,每一条道路都连接某两个等待点,且通过这些道路可以走遍所有的等待点,通过道路从一个点到另一个点要花费一个游戏币。参加游戏的人三人一组,开始的时候,所有人员均任意分散在各个等待点上(每个点同时允许多个人等待),每个人均带有足够多的游戏币(用于支付使用道路的花费)、地图(标明等待点之间道路连接的情况)以及对话机(用于和同组的成员联系)。当集合号吹响后,每组成员之间迅速联系,了解到自己组所有成员所在的等待点后原创 2020-12-06 16:53:26 · 178 阅读 · 0 评论 -
P5536 【XR-3】核心城市(直径)
题目描述X 国有 n 座城市,n − 1 条长度为 1 的道路,每条道路连接两座城市,且任意两座城市都能通过若干条道路相互到达,显然,城市和道路形成了一棵树。X 国国王决定将 k 座城市钦定为 X 国的核心城市,这 k 座城市需满足以下两个条件:这 k 座城市可以通过道路,在不经过其他城市的情况下两两相互到达。定义某个非核心城市与这 k 座核心城市的距离为,这座城市与 k 座核心城市的距离的最小值。那么所有非核心城市中,与核心城市的距离最大的城市,其与核心城市的距离最小。你需要求出这个最小值。原创 2020-12-06 13:29:14 · 348 阅读 · 0 评论 -
P3398 仓鼠找sugar(LCA,树剖)
题目描述小仓鼠的和他的基(mei)友(zi)sugar住在地下洞穴中,每个节点的编号为1~n。地下洞穴是一个树形结构。这一天小仓鼠打算从从他的卧室(a)到餐厅(b),而他的基友同时要从他的卧室(c)到图书馆(d)。他们都会走最短路径。现在小仓鼠希望知道,有没有可能在某个地方,可以碰到他的基友?小仓鼠那么弱,还要天天被zzq大爷虐,请你快来救救他吧!输入格式第一行两个正整数n和q,表示这棵树节点的个数和询问的个数。接下来n-1行,每行两个正整数u和v,表示节点u到节点v之间有一条边。接下来q行,每原创 2020-12-06 09:42:39 · 1195 阅读 · 4 评论