
搜索
文章平均质量分 54
wzf_2000
这个作者很懒,什么都没留下…
展开
-
UVA - 11604 General Sultan
题意:判断是否存在一个01串能由n串已知串用两种不同方式组成。思路:构图,对每个串匹配到每个字符都建立一个点。连边判断:1、原串未匹配完,匹配串匹配完,原串x->原串y;2、匹配串未完,原串完,原串x->匹配串y;3、两串皆完,随便怎么连然后宽搜乱搞。代码:#include #define gc getchar()#define N 109#define L 31usi原创 2016-12-15 13:55:37 · 281 阅读 · 0 评论 -
【BZOJ4813】 [Cqoi2017]小Q的棋盘
贪心!贪心!!贪心!!!1、能走完一棵树当然就走完2、能走到最大深度,到达每个其他点需要消耗的步数为2,除一除就好了3、不能走到,直接输出步数。。。#include #define N 109using namespace std;int n,m,number,first[N],x,y,size[N],deep[N],Max;struct edge{ int to,ne原创 2017-05-07 13:56:55 · 388 阅读 · 0 评论 -
【Codeforces858F】Wizard's Tour
题意: 给你一张nn点mm边无向图,询问最多进行几次操作,每次操作删去两条相邻的边,并给出方案。题解还是蛮神的,直接证明一个连通块的答案可以达到上界,直接给了构造,应该挺显然的。大概就是通过搜索树尽量先匹配深度较低的点向下连得边就好了。#include <bits/stdc++.h>#define gc getchar()#define ll long long#define N 20000原创 2017-09-27 10:01:42 · 469 阅读 · 0 评论 -
【Codeforces763D】Timofey and a flat tree
题意:给定一棵树,询问以哪个点为根时其不同构子树数量最多。 nn个点的树,n−1n-1条边,所以子树共有2(n−1)2(n-1)种,然后先维护出以11为根的各子树哈希值,然后在跑一遍dfsdfs算出每个点的答案就可以啦。 (还不是看std的)#include <bits/stdc++.h>#define gc getchar()#define ll unsigned long long#d原创 2017-10-25 16:57:09 · 513 阅读 · 0 评论 -
【Codeforces238E】Meeting Her
题意:有一张nn个点,mm条边的有向图,有kk种巴士,每种巴士有一个起点sis_i和终点tit_i,每一个时刻,巴士都会等概率选择一条两点间的最短路径。询问一次从aa到bb最坏情况下最少需要乘坐几种巴士。n≤100,m≤n×(n−1),k≤100n \leq 100,m \leq n \times (n-1),k \leq 100题解:首先我们需要知道每个巴士的路径上的必经点。然后我们可原创 2017-12-19 18:59:24 · 456 阅读 · 0 评论