
题解
文章平均质量分 80
sSay_
ACM/OI/CQU
展开
-
Openjudge 8463 Stupid cat & doge
简单分治原创 2016-08-02 20:27:25 · 1856 阅读 · 7 评论 -
[BZOJ]1018 堵塞的交通
Description 有一天,由于某种穿越现象作用,你来到了传说中的小人国。小人国的布局非常奇特,整个国家的交通系统可 以被看成是一个2行C列的矩形网格,网格上的每个点代表一个城市,相邻的城市之间有一条道路,所以总共有2C个 城市和3C-2条道路。 小人国的交通状况非常槽糕。有的时候由于交通堵塞,两座城市之间的道路会变得不连通, 直到拥堵解决,道路才会恢复畅通。初来咋到的你决心毛原创 2017-03-06 08:21:48 · 656 阅读 · 0 评论 -
[BZOJ]1020安全的航线
[BZOJ]1020题意: 给出一条折线和很多个多边形,求折线上的点到多边形距离最小值的最大值。题解: ①二分答案加检验:二分一个最大值,扩展所有多边形的边,如果覆盖了折线上所有的点说明可以满足,接着二分即可。 ②迭代思想的应用:将所有可能的答案加入队列,即把给出的所有线段加入一个队列里,每次取出队头线段,找到端点aa距离多边形最近的点xx,端点bb距离多边形最近的点yy,在这条线段上二分原创 2017-03-11 06:22:36 · 762 阅读 · 0 评论 -
[BZOJ]1021 循环的债务
[BZOJ]1021题意: 给出三个人之间的欠钱关系和他们各自持有的钱币种类和个数,求能不能各自把钱还清,如果不能输出”Impossible”,如果能输出最小的给钱张数。题解: Dp太神了!(弱菜自带遇Dp必跪flag)总之就是Dp。 可以按钱币种类划分阶段,那么方程可以为dp[i][j][k]dp[i][j][k]表示用上了前i种钱币,达到了让第一个人有j块钱,第二个人有k块钱(因为原创 2017-03-11 17:50:16 · 1171 阅读 · 0 评论 -
[BZOJ]1022 小约翰的游戏
[BZOJ]1022题意: 有一堆什么东西,A先手取,B后手,每次可以取走一整堆或者是一部分(至少取走一个),谁拿了最后一个谁赢,给出每堆的数量,求A必胜还是B必胜。题解: 反Nim游戏故作高深,实际上并不知道啥叫Nim游戏,反正这个东西就是反Nim。 对于这个东西来说,如果所有的堆数量都为1的话,SG函数值为0的话A赢,否则B赢。 如果所有的堆数量不一定都为1,SG函数值不为0的话原创 2017-03-11 19:07:43 · 396 阅读 · 0 评论 -
树链剖分
树链剖分原创 2017-03-23 10:14:17 · 429 阅读 · 0 评论 -
[BZOJ]1025 游戏
[BZOJ]1025题意: 给出nn的最大值,求在nn的所有置换中经过不停置换最后重新变成有序的列表不同的排有几种。题解: 首先要知道一个知识:任何一个置换都可以由一些循环的乘积得来。这样的话不同的循环有各自的循环节,长度为nn的循环其循环节是nn,那么问题转换为将nn分解成若干个数这些数有多少种不同的lcmlcm。 1是不影响lcmlcm的,所以合数的情况都可以用质数来表示,而不同的质原创 2017-04-09 09:55:12 · 453 阅读 · 0 评论 -
[BZOJ]1026 Windy数
[BZOJ]1026题意: 给出[L,R][L,R],求区间内的数有多少满足相邻位数之间差的绝对值超出了2。题解: 一眼数位Dp一眼不了的建议学一下数位Dp,然后转化成前缀和的形式来计算。 数位Dp多以位数为阶段,考虑每一位填什么来转移。为了方便枚举到所有的情况,状态设为dp[i][j][k][l]dp[i][j][k][l]表示填到了第ii个数,前一位是jj,kk是0/10/1表示是否贴原创 2017-04-09 09:56:22 · 350 阅读 · 0 评论 -
[BZOJ]1027 合金
[BZOJ]1027题意: 给出一些材料,由三部分组成,给出一些目标材料,要求选择最少种的当前材料能够融合为所有的目标材料。题解: 做这个题的前提是要知道三种材料可以用两种来表示,这样每种材料就可以抽象成平面上的点。接着因为它没有限制材料的多少,所以两种材料可以组成它们连线之间的所有材料。简单再想一想可以知道一堆点组合成的闭包是它们可以组成的所有材料,所以问题就是求一个最小环使得包含所有的目标点原创 2017-04-09 09:57:49 · 530 阅读 · 0 评论 -
[BZOJ]1030 文本生成器
[BZOJ]1030题意: 给出一个MM,表示有MM个字母是随机给出的,有很多种可能。再给出NN个字符串,求NN在MM中出现的可能个数。题解: 类似于[BZOJ]1009。未知字符求个数一般都是字符串Dp,解决方法类似。不过这个题要先转化为不出现的可能个数再拿总数减去。 这个题是多个串匹配,所以是AC自动机AC自动机,用dp[i][j]dp[i][j]表示到了第ii个字符(MM中),匹配到原创 2017-04-09 09:58:48 · 432 阅读 · 0 评论 -
[BZOJ]1069 最大土地面积
[BZOJ]1069原创 2017-04-09 14:32:07 · 535 阅读 · 0 评论 -
[BZOJ]1070 修车
[BZOJ]1070题意:nn辆车和mm个修车师傅,每个修车师傅修每辆车的时间以矩阵形式给出,求所用的最小平均时间。题解:最小费用最大流。 所用的总时间除以nn就是最后的平均时间,那么就是求最后的总时间。 可以考虑给师傅们分配若干修车任务,那么先后次序一定会影响最后的时间(在后面的要等着前面的修好了才能被修),倒数第kk个被修的对答案的贡献为k∗time[i][j]k * time[i][j],原创 2017-04-09 14:33:30 · 756 阅读 · 0 评论 -
[BZOJ]1033 杀蚂蚁
模拟原创 2017-03-16 09:30:58 · 725 阅读 · 0 评论 -
[BZOJ]1010 玩具装箱
[BZOJ]1010题意:P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京。他使用自己的压缩器进行压 缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中。P教授有编号为1...N1...N的NN件玩具,第i件玩具经过 压缩后变成一维长度为CiCi.为了方便整理,P教授要求在一个一维容器中的玩具编号是连续的。同时如果一个一维容 器中有多个玩具,那么两件玩具之间要加入一原创 2017-04-17 21:34:07 · 2600 阅读 · 2 评论 -
[BZOJ]1072 排列
[BZOJ]1072题意:给一个数字串ss和正整数dd, 统计ss有多少种不同的排列能被dd整除(可以有前导0)。题解:除了有一个地方没想过去这基本上是道裸题。。 因为ss的范围很小所以可以状压用过的数字。 整除这种东西不好转移所以用余数为0来表示,dp[s][i]dp[s][i]表示用过的数字状态为ss,除以dd余数为ii的方案数是多少。 转移的时候考虑在ss的基础上添加一个数,即dp[s|原创 2017-04-16 07:41:51 · 547 阅读 · 0 评论 -
CF - 1156D - 0-1-Tree
https://codeforces.com/contest/1156/problem/D乱搞只连接0边搞成一个图,只连接1边搞成一个图。两个图中的联通块内每个点和别的点可以统计答案,贡献为cnt∗(cnt−1)cnt * (cnt - 1)cnt∗(cnt−1)(cntcntcnt是联通块内结点数量)然后先0再1的情况去枚举0到1的那个中间点vvv,用qqq 表示 vvv 所在0块的节...原创 2019-05-07 20:09:19 · 285 阅读 · 0 评论 -
[BZOJ]1023 仙人掌图
[BZOJ]1023题意: 给出一颗仙人掌,求仙人掌上两点间最短距离的最大值(即仙人掌的直径)。题解: 树的直径可以用Dp来搞一搞,这个仙人掌其实也类似。 如果用f[i]f[i]表示从ii向下扩展的最大距离,而且这颗仙人掌上没有环,我们就可以用这样的方法去更新答案:ans=max(ans,f[u]+f[v]+2)ans = max(ans,f[u] + f[v] + 2) 其中uu和原创 2017-03-17 20:09:06 · 711 阅读 · 0 评论 -
[更新]BZOJ
持续更新原创 2017-02-12 16:50:21 · 622 阅读 · 0 评论 -
[更新]BZOJ代码
戳一下更新1000#include <iostream>using namespace std;int main(){ int a,b; cin>>a>>b; cout<<a + b<<endl; return 0;}1001#include <cstdio>#include <cstring>#include <iostream>//By sssSSSa原创 2017-02-12 21:37:27 · 574 阅读 · 0 评论 -
Tyvj P1384 精灵魔法
精灵魔法题解原创 2016-08-07 09:08:39 · 457 阅读 · 0 评论 -
Tyvj P1031 热浪
热浪原创 2016-08-07 11:33:02 · 406 阅读 · 0 评论 -
vijos P1443 银河英雄传说
银河英雄传说题解原创 2016-08-07 11:00:08 · 595 阅读 · 1 评论 -
Tyvj P1033 悠闲的漫步
悠闲的漫步题解原创 2016-08-06 08:05:06 · 382 阅读 · 0 评论 -
Codevs P1052 地鼠游戏
地鼠游戏题解原创 2016-08-05 20:59:07 · 384 阅读 · 0 评论 -
NOIP2005普及组 循环
循环(转)转载 2016-08-05 19:46:38 · 1561 阅读 · 1 评论 -
Vijos P1234 口袋的天空
口袋的天空题解原创 2016-08-05 08:46:04 · 769 阅读 · 0 评论 -
vijos P1263 单挑女飞贼
单挑女飞贼原创 2016-08-04 15:56:15 · 1812 阅读 · 1 评论 -
openjudge 7920 统计单词数
统计单词数原创 2016-08-03 16:44:02 · 1088 阅读 · 0 评论 -
Vijos P1198 最佳课题选择
vijos原创 2016-08-03 15:01:25 · 573 阅读 · 0 评论 -
洛谷 P1111 修复公路
修复公路题解原创 2016-08-07 11:47:01 · 698 阅读 · 0 评论 -
Openjudge 8465 马走日
马走日链接经典回溯题目给出棋盘和初始坐标 问这个马有多少种方法遍历整个棋盘思路从初始点开始遍历每一个方向 并查看新点有没有被遍历过如果没有就走出一步并在这一步继续搜搜完需要回溯(恢复搜之前的状态)如果搜索的深度达到N*M(即棋盘大小) 则遍历到了所有点 答案++直到遍历完所有方案原创 2016-10-09 18:35:52 · 1105 阅读 · 0 评论 -
网络流24题 魔术球问题(弱化?)(二分图解)
魔术球问题弱化(伪)原创 2016-12-30 11:35:12 · 634 阅读 · 0 评论 -
【HEOI】兔子与樱花
兔子与樱花原创 2017-02-08 09:18:43 · 1815 阅读 · 0 评论 -
[BZOJ]1009 GT考试
神题原创 2017-03-01 15:38:11 · 731 阅读 · 0 评论 -
CF - 1156E - Special Segments of Permutation
https://codeforces.com/problemset/problem/1156/E合理分析复杂度想到正解但是不敢做系列预处理以每个点(若为iii)为区间最大的最长段,在该段统计答案。枚举该段左半段(或右半段)的元素(若大小为ppp),判断在另半段有没有a[i]−pa[i] - pa[i]−p存在(储存某个数在aaa数列中出现的位置即可O(1)O(1)O(1)判断),若存在即统计...原创 2019-05-07 22:23:42 · 493 阅读 · 0 评论