摘要: 题意:给你一颗节点数目为n的树,问你能否每次删除一个度为偶数的节点,同时与该节点相连的路也被删除,能否在多次删除操作后删除掉整棵树 题解:从根开始dfs处理出每个节点到根的距离。然后贪心的删除离根最远的偶数度节点。如何证明这个结论是正确的呢?(补题目的时候是多画图然后猜的结论,因为WA了两发后以为是 阅读全文
posted @ 2018-04-18 22:36 采蘑菇的小西佬 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 传送门 题意:给你一个n和m,再给你一个长为n的序列和一个长为m的序列,问最少要删除多少元素,才能使第一个序列中的某个连续子串中恰好满足第二个序列对数字的要求 题解:尺取法,设l为左界,r为右界,若c[a[r]]==b[a[r]]则说明对b中第a[r]个数字的个数要求达到满足,则sum++。如果su 阅读全文
posted @ 2018-04-14 23:59 采蘑菇的小西佬 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 传送门 题解:刚学了随机。。。立刻去搞之前一场比赛的题目 阅读全文
posted @ 2018-04-05 22:58 采蘑菇的小西佬 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 传送门 题意:给你n个点,问能不能找两条直线经过所有点 题解:打比赛的时候很傻逼的认为要确定一条一条直线必须要斜率和截距,但是我tm是在枚举与点i的连线啊啊啊啊,点i是固定的所以只要斜率相等就能判断是不是同一条直线。随机算法随机找两个点确定一条直线,如果枚举的点不在该直线上则将它加入到vector中 阅读全文
posted @ 2018-04-05 22:15 采蘑菇的小西佬 阅读(285) 评论(0) 推荐(0) 编辑
摘要: #include #include #include #include #include #include #include #include #include #include #define se second #define fi first #define ll long long #define lson l,m,rt #define pb push_back #define ull ... 阅读全文
posted @ 2018-04-04 22:00 采蘑菇的小西佬 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 传送门 题意:给你n个点,r条无向边,问最少需要添加几条边使即使删除一条边,依旧能够从一点到达任意点 题解:无向图强连通建边,只要将整个图建成一个边双连通图,那么删除任意一条边依旧还是能够从一点到达任意点 阅读全文
posted @ 2018-04-03 22:35 采蘑菇的小西佬 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 传送门 题意:n个路口m条边,每一个路口都有一辆出租车,给你每辆出租车的能经过的最大长度和花费,给你一个起点一个终点问你从起点到终点最少要多少钱。 题解:先用dij跑出每个点到另外点的最小距离,再枚举两个点的连线,如果满足d[i][j]<=i点出租车的最大长度则建边,最后再跑一次自己建的图 阅读全文
posted @ 2018-04-02 09:55 采蘑菇的小西佬 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 题意:给一个斐波那契数,问是斐波那契数列中的第几个,范围比较大是1到第1e5个斐波那契数 题解:选几个大质数MOD一下,预处理出范围内的所有膜后的值,如果输入的数在取模后能够和某一项斐波那契数的膜一一对应,那么他很大概率的就是它 #include <iostream> #include <cstri 阅读全文
posted @ 2018-03-31 20:10 采蘑菇的小西佬 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 传送门 题意:中文题面。。 题解:13的阶乘大于1e9,也就是说如果n大于13,那么只有后半部分大于13 的会进行重排,所以可以把一个数列分为两段,第一段是1到n-12,第二段是n-12到n。我们需要先dfs出幸运数字的所有情况,sort一下,枚举过去如果n-12大于幸运数字则ans++(因为前一段 阅读全文
posted @ 2018-03-18 10:52 采蘑菇的小西佬 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 传送门:UVA - 10129 题意:输入n个单词问能否把所有单词串起来(每个单词只能用一遍),要求前一个单词的末字母与后一个单词的首字母相同 题解:可以把一个单词的末字母和首字母看成是节点,把中间的字母看成是一条路径,那么题目就转变成求一条欧拉#include <iostream> 阅读全文
posted @ 2018-03-16 00:07 采蘑菇的小西佬 阅读(157) 评论(0) 推荐(0) 编辑