自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

天与云与山与水

行己有耻,博学于文

  • 博客(68)
  • 收藏
  • 关注

原创 hdu2087-自己的理解&kmp讲解-剪花布条

http://acm.hdu.edu.cn/showproblem.php?pid=2087 链接 时隔多年,终于理解kmp了。。 1 进行字符串匹配,如果进行暴力匹配的话,(即一个一个找,时间复杂度O(len1*len2),是不可取的,) 2 所以需要改进这个算法。 如何改进,这个问题,引起了三个年轻小伙子的注意,有一天他们在一个小溪边玩,突然发现了一个老太太在磨针,并且针的 头和尾

2017-08-20 10:43:01 865 2

原创 HDU3068-manacher算法-最长回文串

https://vjudge.net/problem/HDU-3068 求最长的回文串。 有一次用dp求过一次。 :我们都知道求回文串可以依赖于暴力的方法(以某点为重心,暴力的比呗),manacher方法的思想在于利用对称性来减少暴力运算,从而提高效率。 从左到右遍历字符,记录最大的 回文串的右界(记当时的 字符位置为i) 分两种情况 1 当前遍历字符x在 右界右边。这时候无法利用对称

2017-08-14 14:56:53 314

原创 Codeforces Round #430 (Div. 2)A,B

http://codeforces.com/contest/842 给定一个区间l到r a到b。、 问你是否存在一个整数 x属于l,r, y属于a-b,他们的比例x/y等于k。 因为x,y是整数,所以并不是连续的。不能通过计算这两个区间的最大斜率和最小斜率然后比较。 枚举一个区间即可。#include <bits/stdc++.h>using namespace std;/**/do

2017-08-31 19:21:48 205

原创 51nod1344-贪心&进制思想&好题-砝码称重

https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1449 我们发现n就是两个w进制做的差。 当且仅当 两个w进制并不能做出来n的话,就不可以了。 而如果能做出来n,那么n必然也是w进制数。 所以我们对n进行w进制下的分解。 因为每个砝码最多一次,所以每次分解,余数也就是 位数。 必须为0或1. 但是。。还有一

2017-08-31 11:52:29 251

原创 51nod1103-抽屉原理-N的倍数

https://www.51nod.com/onlineJudge/submitDetail.html#!judgeId=332251 我感觉这种题就是思维。 给定N个数,要求取多少个,他们的和为N的倍数。 维护前缀和。(取模有可加性) 如果mod等于0,那就从头到尾输出。 否则的话,N个数的mod 范围在1-n-1之间, 肯定有两个数的mod一样,那他们的差值就是结果。。 N个数,可

2017-08-30 20:44:21 269

原创 hdu1878-判断欧拉回路-欧拉回路

http://acm.hdu.edu.cn/showproblem.php?pid=1878 主要是好像下一道题就是求 欧拉回路的。。 用dfs判断连通性,或者用并查集都行。 还是研究生复试题,好水。。 看来我考研有希望了qwq 欧拉回路的条件。(就是一笔画问题啦) ① 无向图 一个连通块,所有顶点度数均为偶数。 ② 有向图 所有顶点入度等于出度 欧拉通路(就是画完,并

2017-08-30 17:32:17 361

原创 hdu5442-字符串循环节&最小表示法|后缀数组(未补)|kmp+最小-Favorite Donut

http://acm.hdu.edu.cn/showproblem.php?pid=5442 给定一个字符串,长度为n。 定义有正和反两种读的方法,则其同构的串总共为2*n. 问你这么多串中 最大的同构串的起始位置。 若最大同构串出现多次。 ①要求起始位置最小。(位置从1到n) ② 如果正向和反向的起始位置一样,则输出正向。 。 有kmp的方法,但是没怎么搞明白。 后缀数组。。我还

2017-08-30 16:49:28 303

原创 51nod1625-贪心&枚举&好题&基础搜索-夹克老爷发红包

https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1625 中文题意。 用dfs进行枚举C(m,k),尽管以前见过,却是写的不多,忘记了。。 枚举少的那一部分,(横向),然后再贪心竖向的。 用dfs 枚举。 wa了几次,因为没有横向和竖向共用红包次数,没有考虑。。#include <bits/stdc++.h>u

2017-08-30 11:09:56 346

原创 hdu6178-搜索&思维&读入挂-Monkeys

http://acm.hdu.edu.cn/showproblem.php?pid=6178 给定一个树,有k个猴子,m个节点,要求每个猴子都至少和一个猴子连接。 问至少需要的边数。 肯定两两匹配,情况最少, 但是没想到两两匹配,直接搜索就行,统计每个节点为根节点,然后未匹配的子节点数目,和总结点数目,如果有的叶子节点未匹配,那么就把他和父亲节点匹配。 要用一个贼强的输入挂,不同于其他的普

2017-08-29 16:22:40 231

原创 51nod1432-贪心-独木舟

https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1432 每次找最大的和最小的放。 如果放不下就最大的单独放。 因为如果出现船多,只有两种情况。 ① 很多小船,他们彼此用两个,浪费了很大的空间。 ② 很多大船,他们彼此用两个,而大型的船要独占一个。#include <iostream>#include <cst

2017-08-29 09:45:17 270

原创 Educational Codeforces Round 27-搜索&技巧&异或-G. Shortest Path Problem?

http://codeforces.com/contest/845/problem/G 只能说太强了。 给定一个图,距离为边的异或值。问你异或值最小。 想象如果有多条不想交的路可以从1到达m。 我们可以先计算其中一条路线的异或值,在计算他们的异或前缀和。 然后这些和分别异或 第一条路,和第一条一起 取最小值。 #include<cstring>#include<cstdio>#i

2017-08-28 20:21:55 347

原创 hdu3594-仙人掌图的判断&tarjan找环-Cactus

http://acm.hdu.edu.cn/showproblem.php?pid=3594 明确一点:一个scc并不一定是一个环,也可能是很多环。仙人掌图就是一个例子。 仙人掌图就是 每个环粘结起来,每条边只属于一个环。 有三个性质。 ① 没有横向边(具体可以看见百度文库那个讲解,https://wenku.baidu.com/view/ce296043192e45361066f575.h

2017-08-28 18:48:14 2055

原创 hdu6180-贪心&互不重叠的线段的组数-Schedule

http://acm.hdu.edu.cn/showproblem.php?pid=6180 贪心的策略是 让每份时间的间隔尽可能的小。 1 维护一个 multiset,里面放的是各个机器的最后运行时间。 然后每一个时间段,查找最近的比这个时间段时间小的 机器最后时间,如果没有的话,即所有的最后运行时间都比他的大,那么就再开一个机器,否则的话,把最近的那个机器时间给更新了,然后继续。#incl

2017-08-28 16:59:54 375

原创 hdu6181-启发式搜索A*|次短路模板|最短路枚举-Two Paths

acm.hdu.edu.cn/showproblem.php?pid=6181 我是用次短路板子做的。。初始化得多点不然得超时。 ①求次短路的思路是维护到达x点的最小距离和次小距离。(dij和spfa应该都可以,都做一下板子) ② 用A*,即启发式搜索,先求出F(X)即x点到目的点的代价,在求S(x),即初始点到x点的代价,然后找第k小的。用muliset或者优先队列都行,(multiset写

2017-08-28 12:39:42 443

原创 Educational Codeforces Round 27

http://codeforces.com/contest/845 22号做的。 待补。 一个D模拟。 一个G ,图论和思维。都挺难的qwq A. Chess Tourney 给定m个人,问你能不能分成两半。其中一组的分数均小于另一组。 sort就行,看第m-1和第m个人是不是相等。是就不能,否则就能#include <bits/stdc++.h>using namespace std

2017-08-23 19:57:18 186

原创 hdu3374-最小表示法&&kmp求循环节-String Problem

http://acm.hdu.edu.cn/showproblem.php?pid=3374 之前做过一道exkmp的题,就是先求的 循环节。就是用的这个代码的方法。。 开始先用表示法来算的,然后暴力枚举超时了,就想到用循环节式一下。 用string会超时,挂载也超时 给你一个串,分别输出 字典序最小同构串的 第一个字符位置(从1开始) 出现次数 字典序最大同构串的第一个位置 出现次

2017-08-23 19:28:38 215

原创 hdu6170-多看几遍之DP&递推&字符串-Two strings

http://acm.hdu.edu.cn/showproblem.php?pid=6170 给定两个串。 a串是正常串。 b串中有两种元素。 1 种是* ,可以让前面那个出现任意次(甚至让他出现0次) 2 是. 和任意字符匹配。 too young 系列。 日后,用搜索也写写,应该也行。 可以发现 几种状态转移。 ① 当为 . 时,这时没的说,由dp[i-1][j-1】得来 ②

2017-08-23 18:38:04 375 3

原创 hdu2609-字符串最小表示法|模拟|二分+lcp-How many

http://acm.hdu.edu.cn/showproblem.php?pid=2609 给你m个串,长度相等。只有0和1组成, 他们都可以把后面的 放在前面。并且这种串算作相同的 比如 1100 1001 0011 0110 这四个。 问你m个中有多少不同的。 暴力写的,后来看别人的题解。最小表示法,O(n),,类似用两个指针 来比较,利用的是 字典序的相关特质, 还有一个lcp+

2017-08-23 14:41:31 225

原创 hdu2196-树形dp|树的直径-Computer

http://acm.hdu.edu.cn/showproblem.php?pid=2196 给定一个网络,是一个图,求每个节点到最远节点的距离。。 1 树的直径。 即树上的最长简单路(最长的一条线)。然后求出直径的两个端点, 在计算的时候记忆化一下,保存一下他们距离 端点的距离。然后取最远的。( 1 先求出距离一个端点的距离,用直径直接减去是不行的,,因为有的点并不在树的直径上。。

2017-08-23 10:24:48 316

原创 hdu6165-tarjan&&多校9&&模板修正|XJB暴力-FFF at Valentine

http://acm.hdu.edu.cn/showproblem.php?pid=6165 坑啊,我以前的模板是树上的tarjan,没有延时标记,是用的dfn(搜索顺序数组)来搜索的。。所以第一个样例不对。。 然后我就感觉那么多人都过了,不应该是这个玩意,毕竟他比较冷门。。。 修正了 模板,还有就是这个题稍微麻烦一点,得重新见图缩点。 。。缩点后 拓扑我已经想到了(因为他要两者任意就行,我

2017-08-22 21:07:17 616

原创 hdu6168-多校9&stl&模拟- Numbers

http://acm.hdu.edu.cn/showproblem.php?pid=6168 不说了。。too young。。 每次找最小的。然后删掉和a集合中每个数构成的和。 (能够保证每个数的配对都够) 开始用 muliset写的,erase全删除完了,。。发现了一个技巧,挺好用#include <bits/stdc++.h>using namespace std;vector<in

2017-08-22 19:13:22 334

原创 hdu6105-多校6&&博弈&图&思维-Gameia

http://acm.hdu.edu.cn/showproblem.php?pid=6105 这道题真的很不错qwq alice和bob在一个图上玩游戏,bob的技术是,每次到达一个点,就把他邻接的其他点和这个点都染成黑色,而alice则只能染一个色,并且bob是qq会员,可以删除k跳图的边(想啥时候删啥时候删,事实上二人都是老成谋国之人,都是走的最优解,并且也没有同时删除边的数量限制,所以与时

2017-08-21 21:30:53 346

原创 Codeforces Round #428 (Div. 2)-贪心&模拟-B. Game of the Rows

http://codeforces.com/contest/839/problem/B 给定座位, 两边两个,中间4个,要求不同队伍的不能挨着。 问你怎么排列。 发现,当有一个人时,他放在2 和4 都是可以的。效果一样。 一个2可以放一个4。 策略:先放4,然后放2,他们对下面的影响可以保存qwq#include <bits/stdc++.h>/* 计算小于8的数量,如果是 1 2

2017-08-21 14:59:28 177

原创 hihocoder164周-枚举&粗心-有序01字符串

https://hihocoder.com/contest/hiho164/problems 直接枚举就好。。但是错了好几次,因为没有枚举完qwq 枚举两段区间 1 和0的个数,求最小值就行。数据量很小,,, 必须 枚举到 左右段有空空的 两种情况qwq 错误的写法 #include <bits/stdc++.h>using namespace std;int main(){

2017-08-21 09:53:14 214

原创 Codeforces Round #416 (Div. 2)

http://codeforces.com/contest/811 1 水题,两个人有蛋糕,每天互相给,并且每天多给一个。看谁最后给不了。 直接滚动就行。#include <bits/stdc++.h>using namespace std;int main(){ int a[2]; scanf("%d%d",&a[0],&a[1]); int tt=0; in

2017-08-20 20:29:18 190

原创 hdu6153-exkmp&&脑洞-A Secret

http://acm.hdu.edu.cn/showproblem.php?pid=6153 给定一个a串作为 母串,然后b作为模式串, f【i】 为b的后缀的长度。 d[i] 为b这个后缀在 a串中出现的次数。。 问你他们的 积是多少,积mod1e9+7 。。 这个后缀很误导人惹 颠倒一下,发现这就是前缀出现的次数。 前缀??? exkmp的 extend就是 母串子串和模式串的

2017-08-20 20:00:08 406

原创 hdu4333-拓展kmp-Revolving Digits

http://acm.hdu.edu.cn/showproblem.php?pid=4333 拓展kmp,打算在写几道再讲,现在只是理解了大概思想qwq。 给定一个字符串,可以把它后面的字母往前放,问你有多少大于原数,小于原数,等于原数的。qwq 暴力保存了一个,mle。毕竟1e5 后来看了正解,真的不错。原串乘2 是这种情况 模式串(len) 和 目标串的子串(长度也为len)比较

2017-08-20 16:46:03 253

原创 hdu6154-CCPC网络赛&规律-CaoHaha's staff

http://acm.hdu.edu.cn/showproblem.php?pid=6154 队友写的,画了好久,很强势#include <bits/stdc++.h>using namespace std;int main(){ int t,k; scanf("%d",&t); while(t--) { scanf("%d",&k);

2017-08-19 23:40:26 328

原创 hdu6152-CCPC网络赛&思维&拉姆齐定理-Friend-Graph

http://acm.hdu.edu.cn/showproblem.php?pid=6152 比赛的时候理解错题意了,wa了好多发。 想在图中找到 完全图并且去掉。。 后来发现如果存在一个非常大的完全图,那么任意枚举这个图中的三个点,也能得到相同的结果。。。 所以就用的枚举。。 枚举三个点是否相互认识或者 相互不认识。 开始吃了mle的亏,用的bitset设置的。 第一次听说 拉姆齐定

2017-08-19 23:35:42 516

原创 hdu6141-多校8&最小树形图&朱刘算法-I am your Father!

http://acm.hdu.edu.cn/showproblem.php?pid=6141 比赛的时候根本没看那道题。 学习中。mark一下。 最小树形图 就是有向图的最小生成树。 一般用朱刘算法。 1 加入最小的边。如果存在孤立点,那么肯定不会有最小树形图。break 2 如果有 不包含root的环,对环进行缩点。 3 反复进行,直到没有环。 但这一道题还有不一样的地方

2017-08-18 18:52:29 370

原创 POJ1741-树的分治&树的重心&树上的路径问题-Tree

https://vjudge.net/problem/POJ-1741 给定一个树,问你他们之间距离小于等于k的点对有多少个 1 可以理解为二分这个树,最后到只有一个顶点时结束,为了让其尽可能的快,所以取重心, 2 取到一个重心后,每个点到重心的距离,用一个On的双向搜索计算小于等于k的点对。但是可能会存在没有过这个点的点对,所以把所有距离都加上和 重心邻接的边,去掉那些不经过 当前重心的点。

2017-08-18 16:39:44 293

原创 hdu6143-多校8&三种方法-组合数|递推|容斥-Killer Names

http://acm.hdu.edu.cn/showproblem.php?pid=6143 这道题这么多写法qwq 真的好强悍 1 递推。当时也想来着,不过我想的是打表那种,但其实m和n不一样,结果也是不一样的。在有限的颜色下。 i为 当前段,j为使用过的颜色 满足递推方程dp[i][j]=dp[i-1][j]j+dp[i-1][j-1](n-j+1)… 后面计算另一个的时候,就反着求

2017-08-18 11:42:07 269

原创 UVA10006-快速幂Carmichael Numbers

https://vjudge.net/problem/UVA-10006 快速幂模板#include <bits/stdc++.h>using namespace std;typedef long long ll;int quickpow(int n,int m,int mod){ ll ret=1; int x=n; while(m>0){ if

2017-08-17 21:26:01 203

原创 hdu6140-多校8&思维&坑- Hybrid Crystals

acm.hdu.edu.cn/showproblem.php?pid=6140 纪念暴零0的一天。 这道题很坑,因为题意中间说了,”For those who do not have the patience to read the problem statements”。 然而上面的是有用的。 给定一些数,有的增加能量,有的减少能量,有的可以增加或者减少能量。问你某些个能量能否组成。 开

2017-08-17 20:35:53 446

原创 HDU2665-主席树&模板-Kth number

https://vjudge.net/problem/HDU-2665 区间第k大,主席树模板题。 讲解主席树 http://blog.csdn.net/regina8023/article/details/41910615#include <iostream>#include <algorithm>#include <bits/stdc++.h>using namespace std;

2017-08-16 20:29:08 207

原创 hdu6127-!!多校7&极角排序&问题转化-Hard challenge

.真的要好好思考一下了,这种题根本就不难,或者说,不难在编码水平,而难在问题的转化,高中都学过积角排序qwq。 太菜qwq,给定一些点,他们两两之间都有一条线段,线段的权是他们之间的和。 然后再给你一条直线,如果这条直线经过这些线段,就加上他们的权 问 怎么摆放这条直线,他们的边权最大。 -。-把这些点 用一条直线分成两份,然后求他们的乘积和最大。 http://acm.hdu.edu.c

2017-08-16 19:02:53 298

原创 Codeforces Round #422 (Div. 2),STL,欧拉筛&分解的规律

http://codeforces.com/contest/822 1 是阶乘的gcd,所以直接找最小的就好了qwq#include <bits/stdc++.h>using namespace std;typedef long long ll;int main(){ int m,n; scanf("%d%d",&m,&n); if(n>m) swap(m,n)

2017-08-16 13:32:01 239

原创 hdu6130-多校7&规律-Kolakoski

http://acm.hdu.edu.cn/showproblem.php?pid=6130 给定一个数列,是 1,2,2,1,1,2,1,2,2,1,2,2,1,1,2,1,1,2,2,1……、 他是怎么来的呢。 把相邻相同的项当成一组,发现时 1 22 11 2 1 22 1 22 11 2 11 22 1 那个数组就是 (把数组这样处理之后的长度的数列) 然后就打表,打的要多点(

2017-08-15 21:50:52 580

原创 Codeforces Round #428 (Div. 2)-搜索&期望&细节-C. Journey

http://codeforces.com/contest/839/problem/C 给定你一个树,n个节点,问你距离期望是多少。 (距离就是到每一个叶子距离乘以到达他的概率(有分叉就乘1/siz))。 按照题意dfs就行了,但是竟然wa第5个。一直想想不到。。 后来发现,是因为开始的时候没有把 1点dfs,这样导致后来计算的过程中,如果有多个分叉,可能会返回1点在计算一次qwq,而样例不

2017-08-14 21:18:04 197

原创 nefuoj1204-区间dp&前缀处理-分段乘积最大

http://acm.nefu.edu.cn/JudgeOnline/problemShow.php?problem_id=1204 中文题意。 先处理前缀和,然后枚举区间dp#include <stdio.h>#include <stdlib.h>#include <string.h>#include <iostream>#include <algorithm>using names

2017-08-14 20:53:46 324

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除