
ACM/ICPC
bnyf
这个作者很懒,什么都没留下…
展开
-
UVA-340 模拟
题目传送门: http://bak.vjudge.net/problem/UVA-340题意:先给出一组数字,然后进行多组询问,问你该组数组中在原组中对应的数目,以及不对应但出现过的数目思路: 数字x与原组对应项的数目a直接统计就行,但第二条的话,需要统计数字x在原组中出现的次数c1,和在查询组中出现的次数c2,然后min(c1,c2)-a即可。虽然ac了,但代码写的有原创 2016-09-26 19:35:02 · 464 阅读 · 0 评论 -
UVA-401 字符串
题目传送门: http://bak.vjudge.net/problem/UVA-401题意:给一张表上面对应的是A-Z,1-9的镜像字符,然后输入一串字符串问字符串是否为镜像字符串或回文字符串简单的建表模拟,算是个水题吧代码如下:#include #include #include #include #include #include #inc原创 2016-09-26 18:25:32 · 325 阅读 · 0 评论 -
HDU-1251 trie树
题目传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1251题意:先给出一堆字符串,然后又给出一堆字符串,问第二堆每个字符串是第一堆字符串中多少个字符串的前缀。trie树模版代码如下:#include #include #include #include using namespace std;typedef原创 2016-09-22 11:55:06 · 317 阅读 · 0 评论 -
HDU-1686 kmp
题目传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1686题意: 求一个字符串在另一个字符串中出现的次数,如 AZA 在 AZAZAZAZA出现4次一个典型的kmp模版题代码如下:#include #include #include #include using namespace std;const int原创 2016-09-22 11:50:51 · 373 阅读 · 0 评论 -
POJ-1273 网络最大流(ek)
题目传送门 : http://poj.org/problem?id=1273 题意:一个农场排水系统,n条小溪,m个排水沟,求从排水沟1到排水沟m的最大水流量,需要注意的是两个排水沟之间可能不只有一条小溪。 第一次学习网络最大流,过程可以说是极为坎坷。先是看不懂残量图,接着又看不懂增广路,最后花了N个小时终于有点看懂了,开始敲代码又wa无数= =,整个人都是崩溃的,搞了一天终于算是...原创 2016-09-21 14:28:15 · 390 阅读 · 0 评论 -
HDU-4135 欧拉函数+容斥
题目传送门: http://acm.hdu.edu.cn/showproblem.php?pid=4135题意:输入三个数a,b,n,求[a,b]之间与n互质的个数这题可以转化成求[1,b]内与n互质的个数减去[1,a]内与n互质的个数。而[1,x]内与n互质的数可以转化成x-[1,x]内不与n互质的数。接下来就是求[1,x]与n不互质的数,先找出n以内的质因数保存原创 2016-09-20 19:37:47 · 441 阅读 · 0 评论 -
HDU-2222 ac自动机
ac自动机:给一堆单词,再给一篇文章,问你这些单词在文章中出现过多少次代码如下:#include#include#include#include using namespace std;char str[1000000+100];struct node{ int count; struct node *next[26]; struct原创 2016-09-19 19:44:01 · 361 阅读 · 0 评论 -
POJ-3468 线段树
题意:给你N个数,Q个操作,操作有两种,‘Q a b ’是询问a~b这段数的和,‘C a b c’是把a~b这段数都加上c。需要用到线段树的,update:成段增减,query:区间求和介绍Lazy思想:lazy-tag思想,记录每一个线段树节点的变化值,当这部分线段的一致性被破坏我们就将这个变化值传递给子区间,大大增加了线段树的效率。在此通俗的解释我理解的Lazy原创 2016-09-19 19:41:05 · 414 阅读 · 0 评论 -
51nod-1057 高精度乘法
题目传送门: https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1057题意:题目就是要求n的阶乘,但n 大致思路就是将一个数分段储存起来,由于此题n最大是100000,所以就按5位数字存在一个元素当中。每次乘的时候就用当前数组中元素从低位到高位分别去乘,该进位的进位就行了。代码如下:原创 2016-09-26 21:20:04 · 434 阅读 · 0 评论 -
UVA-202 分数转化小数
题目传送门: http://vjudge.net/problem/UVA-202题意:除法模拟,循环小数要将循环位表示出来。思路:此题的关键是找到循环节,循环节可以可以根据模拟除法时没次的余数进行判断,若出现之前重复的余数,说明出现了循环节,回溯找到完整的循环节,然后输出就行了。代码如下:#include #include #include #incl原创 2016-09-27 20:30:01 · 369 阅读 · 0 评论 -
HDU-5914 规律题
题目传送门: http://acm.hdu.edu.cn/contests/contest_showproblem.php?pid=1004&cid=728题意:给一个数n,问需要从1到n中拿走多少个整数才能让剩余的整数组合不成三角形思路:算是一个找规律题吧,类斐波那契,找到规律后直接打表代码如下:#include #include #include原创 2016-10-05 14:56:15 · 831 阅读 · 0 评论 -
Codeforces Round #369 (Div. 2) C 四维dp
题目传送门 : http://codeforces.com/contest/711/problem/C题意:有n颗树,m中颜料,对树进行涂色,涂成k组(如1,2,1为三组;1,2,2为两组;1,1,1为一组)。接下里一行n个数,0代表未涂色,正数代表已涂色。接下来n行表示 第i棵树染成j色需要Pi,j吨颜料。问想要符合条件,最少需要耗费多少吨颜料思路:三维dp,空间三维,时原创 2016-10-05 10:37:57 · 551 阅读 · 0 评论 -
Codeforces Round #375 (Div. 2) D 连通块
题目传送门:http://codeforces.com/contest/723/problem/D题意:给一张N*M的图,图被ocean包围,'*'代表land,‘.’代表cell,相邻的所有cell组成lake,如果有cell靠近海,则其所有相连的cell不能组成lake,给一个K,问最少进行多少次操作将cell变成land,才能让图只有K个lake(k一定小于等于现有lake)原创 2016-10-04 20:20:47 · 287 阅读 · 0 评论 -
Codeforces Round #375 (Div. 2) C 模拟
题目传送门:http://codeforces.com/contest/723/problem/C题意:给n首歌曲1,2...n然后a1,a2,...an表示1th歌曲由a1th乐队演唱,小明喜欢前m个乐队,小明可以随意改变歌曲的演唱者,问最少要操作多少次才能让小明喜欢的乐队中唱歌最少的乐队唱的歌尽量多,输出最少乐队唱的歌曲数,最少操作次数,操作后的演唱名单思路:昨天比赛的原创 2016-10-04 11:03:59 · 315 阅读 · 0 评论 -
CF Intel Code Challenge Elimination Round D set
题目传送门:http://codeforces.com/contest/722/problem/D题意:给一个集合Y,问是否存在集合X,让X中的每个元素经过零次,一次或多次操作q或p与Y中的元素对应,两集合都是无序且互异的操作q:x = 2*x, 操作p:x = 2*x +1思路:这题主要就是stl的使用,之前没用过set,这次就当学习set的用法了,用set存Y(按从原创 2016-10-03 10:59:08 · 374 阅读 · 0 评论 -
Codeforces Round #374 (Div. 2) D priority_queue
题目传送门: http://codeforces.com/contest/721/problem/D题意:给n个数(有正有负),然后是k,x,k代表可操作的次数,x表示每次能+或-的值。每次可选n个数中的任意一个进行操作,+或-x,经过k次操作后,让n个数的乘机最小思路:每次都选绝对值最小的数进行操作(用优先队列),然后根据目前乘机的正负进行不同的操作代码如下:原创 2016-10-03 10:50:01 · 369 阅读 · 0 评论 -
CF Intel Code Challenge Elimination Round C 并查集
题目传送门 : http://codeforces.com/contest/722/problem/C题意:先给n个数p1,p2,....pn分别代表1,2......n位置的权值,然后再给n个数,b1,b2...bn,分别挖去p数组中b数组所对应的值,然后每挖去一个数,求剩余区间和最大的值思路:这题猛的一看还以为是线段树,但经过组里的菊苣提醒,发现并查集就可以解决,倒着做原创 2016-10-02 10:14:34 · 350 阅读 · 0 评论 -
Codeforces Round #374 (Div. 2) C 树形dp
题目传送门: http://codeforces.com/contest/721/problem/C题意: 给n个点,m条边(n,m原创 2016-10-02 09:42:33 · 367 阅读 · 0 评论 -
HDU-5438 dfs+拓扑排序+前向星
题目传送门: http://acm.hdu.edu.cn/showproblem.php?pid=5438题目大意:有n个水池,m个管道,每个水池都有一个权值,Betty想要拆水池,只能拆度数为一的水池,他将一直拆下去直到不能拆为止,求含奇数个水池的连通图的总权值思路:先用前向星建图,然后用类似拓扑排序的方式将可以拆的水池找出来,最后跑一遍dfs将有奇数个点的连通图给找出来原创 2016-09-19 17:03:52 · 421 阅读 · 0 评论 -
HDU-6055 推公式
题目Regular polygon题意推公式。 给你 n 个坐标(整数点),问这些坐标能构成多少个正多边形题解由于坐标是整数点,所以只能构成正四边形。 然后循环枚举其中的两个点,判断其他两个点是否存在。 最终答案需要除以 C(4,2) - 2 ,“-2”是减去枚举的是对角线的情况。 至于如何由两点推出另外两点的坐标,如果看代码实在理解不了,可以直接作为模版记住就行了。 = =代码#inclu原创 2017-09-14 19:38:26 · 260 阅读 · 0 评论 -
HDU-6050 推公式
题目Funny Function题意给三个公式,求 F(m,1)题解推公式。 Fn = Fn-1 + 2 * Fn-2 可以根据特征根(微分方程的知识)推出 Fn = 2n/3 - (-1)n/3 。 然后再根据第三个公式推出 F(m,1)=(2*(2n-1)m-1+(1-(-1)n)/2)/3 。 最后分奇偶用快速幂和逆元算出答案。代码#include <algorithm>#includ原创 2017-09-14 19:39:15 · 284 阅读 · 0 评论 -
HDU-6195 推公式
题目cable cable cable题意推公式,签到题。给 k 个光源(每个光源可以发射一种颜色),m 个显示器,每个光源每次只能发射一光线,但可以有多个电缆和显示器相连。问至少要有多少根电缆,才能保证每次任选 k 个显示器都能显示 k 种颜色。题解简单画图推导可知,每个光线至少要和(m - k + 1) 个 显示器相连。所以一共要(m - k + 1) * k 个电缆。代码#include <原创 2017-09-14 19:28:13 · 523 阅读 · 0 评论 -
POJ-2407 欧拉函数
题目Relatives 题意[1,n]中与n互质的个数。题解欧拉函数模版题。先找出n的质因数p1,p2 …… ,如8 = 2 * 2 * 2,12 = 2 * 2 * 3,然后求出欧拉函数phi(n) = n*(1-1/p1)*(1-1/p2) …… 。代码#include &amp;lt;iostream&amp;gt;#include &amp;lt;cmath&amp;gt;原创 2018-05-29 20:01:37 · 294 阅读 · 0 评论 -
LeetCode 1 ~ 5 题解
题目Two Sum题意给定一个有序数组 nums 和一个目标值 target ,在数组 nums 中找出两个不同位置的数 a 和b,使得 a + b == target,返回a 和 b 在数组 nums 中的下标。题解首先用pair 将数组中的值和下标组合在一起,放在 vector 中,对vector进行排序。然后开两个指针,分别指向数组头部和尾部。相加两个指针所指元素并和 target...原创 2018-12-01 14:49:25 · 350 阅读 · 0 评论 -
HDU-6033 数论
题目TrickGCD题意给一个数组 {Ai},求能得到多少种数列 {Bi} {Bi} 需要满足: 1. 1 ≤ Bi ≤ Ai 2. 对于(l,r)( 1 ≤ l ≤ r ≤ n ),gcd(bl, bl+1 … br) >= 2题解这道题需要用到莫比乌斯反演的知识,如果不会可以先看一下 http://blog.youkuaiyun.com/acdreamers/article/details/854原创 2017-09-14 19:40:41 · 291 阅读 · 0 评论 -
HDU-6043 规律题
题目KazaQ’s Socks题意爱干净的 大Q 每天都洗他的袜子,而且他把每双袜子按照 1 到 n 进行了编号。 他有一个特殊的癖好就是每天早上都会从衣柜里拿编号最小的那双袜子去穿。 到晚上的时候,他会把袜子扔到盆里,如果盆里的袜子达到 n-1 双,他就会把它们洗了,然后第二天晚上再放回衣柜。 问 大Q 第 K 天穿的袜子的编号。题解规律,签到题,而且是道有味道原创 2017-09-14 19:50:09 · 332 阅读 · 0 评论 -
51nod-1212 无向图最小生成树
题目传送门: https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1212题目大意:第一行给N个点M个边,接下来M行每行给三个数a,b,c分别是线的两个端点以及线的长度算法一:prime先添加任意一个点到集合V中,然后根据贪心的思想找到与集合V中点相连的非V集合元素加到V集合中,直到将N个点全加到原创 2016-09-14 19:44:39 · 626 阅读 · 0 评论 -
51nod-1134 最长递增子序列(LCS)
题目传送门: https://www.51nod.com/onlineJudge/submitList.html#!userId=11254&problemId=1134给出长度为N的数组,找出这个数组的最长递增子序列。(递增子序列是指,子序列的元素是递增的)例如:5 1 6 8 2 4 5 10,最长递增子序列是1 2 4 5 10。(50000个数)如果原创 2016-09-11 20:32:31 · 418 阅读 · 0 评论 -
51nod-1130 N的阶乘的长度(斯特林)
题目传送门: https://www.51nod.com/onlineJudge/submitList.html#!userId=11254&problemId=1130给一个数N,求出N的阶乘的长度一、取对数的做法用对数的性质,将若干个数相乘改为若干对数相加的形式O(n)的时间复杂度代码如下:#include #include #include #inc原创 2016-09-11 12:03:59 · 406 阅读 · 0 评论 -
51nod-1073 约瑟夫环
题目传送门: https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1073题意: 有N个人坐成一个环,从1开始报数,报到第K个人出列,然后接着从1开始报数,直到剩下最后一个人,求最后一个人的编号假设N = 5,K = 3(从0开始编号),a为当前状态的人数一、0,1,2,3,4 二、0,1,3原创 2016-09-11 11:01:55 · 284 阅读 · 0 评论 -
51nod-1079 中国剩余定理
题目传送门 : https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1079一个正整数K,给出K mod 一些质数的结果,求满足条件的最小K,例如, K%2 == 1,K%3 == 2,k%5 == 3, K最小时是23。此题是一道中国剩余定理的模版题,具体的证明可以看 http://blog.youkuaiyun.com/acdrea...原创 2016-09-11 10:41:08 · 602 阅读 · 0 评论 -
POJ-1655 树的重心(树形 DP)
题意定义一个点的“平衡”值等于将这个点拆去后,形成的子树中节点数的最大值。求一棵树“平衡”值最小的点。题解这其实就是树的重心的概念,通过树形 dp 很容易解决。当去掉抹一点后,它下面的子树的节点个数通过 dfs 可以得到,它上面的子树的节点个数等于总节点个数减去它本身及其子节点的总节点数。代码#include <algorithm>#include <bitset>#include <cstri原创 2017-09-30 15:10:40 · 363 阅读 · 0 评论 -
CF Technocup 2017 - Elimination Round 1 C 交互
题目传送门:http://codeforces.com/problemset/problem/727/C题意:一道交互题,有n个数,你可以询问n次任意两个数的和(这两个数不可以相等),然后猜出n个数分别是多少思路:之前从没做过交互题,其实很简单。一问一答,先问sum1,2 ,sum2,3,sum1,3算出来a1,a2,a3然后接着问sum3,4,sum4,5......原创 2016-10-25 16:23:26 · 354 阅读 · 0 评论 -
HDU-6197 DP
题目array array array题意dp,lcs。给你一个 A 数列,和一个数字 k。问你能不能从 A 数列顺序中挑出 k 个元素组成新数列。新数列要满足非递增或非递减。题解就是求最长上升子序列 length1 和最长下降子序列 length2。然后如果 (length(A) - length1 <= k || length(A) - length2 <= k) 就可以,反之则不行。代码#in原创 2017-09-14 19:29:15 · 311 阅读 · 0 评论 -
HDU-5916 规律题
题目传送门: http://acm.hdu.edu.cn/showproblem.php?pid=5916题意:给两个数n,k(1 为所有排列可能中的第k小个排列思路:观察发现2*k小于等于n,如果把2*k和k放到最前面,剩余的按互质进行排列,正好满足要求(队友想出来的),很奇妙。然后 k-1到1,k+1到2k-1,如果2*k2*k-1和2*k+1很容易证出互质,这原创 2016-10-05 15:04:29 · 964 阅读 · 0 评论 -
Codeforces Round #369 (Div. 2) D 欧拉回路
题目传送门: http://codeforces.com/contest/711/problem/D题意: 一张图,给n个数a1,a2,.....,an,代表从i到ai,这样建一张图,问有多少种不同的集合,改变集合里的边使图不含环思路:求出图中环的数量n,每个环中元素的个数m,不在环中元素的个数k,答案 ans = (2^m1-2) * (2^m2-2)*......*(原创 2016-10-06 12:29:26 · 268 阅读 · 0 评论 -
HDU-6034 贪心
题目Balala Power!题意给 n 个字符串,字符串只有小写字母,然后给字母从0-25进行编号,使得所有字符串按照26进制得的值相加的和最大。字符串不能有前置0,除非该字符串只含1个字母。 求最所有字符串编码后的和的最大值,答案模 109+7 。 题解贪心,这道题思路不难,但是写起来很烦人,算是考察编程的基本功了。 我们可以按照26进制记录每个字母的权值,然原创 2017-09-14 19:51:24 · 404 阅读 · 0 评论 -
HDU-6045 推公式
题目Is Derek lying?题意Derek 和 Alfia 是两个好朋友,他们回答三个问题,然后 Derek 会将他的成绩 X 和 Alfia 的成绩 Y 告诉 Alfia, 但是 Derek 可能会说谎。现在将这两个人的答案告诉你,请你判断 Derek 是否说谎。题解推公式,签到题。 我们假设 Alfia 的得分是正确的,根据他们俩的答案推出 Derek 得分的区间,然后判断 Derek原创 2017-09-14 19:36:36 · 325 阅读 · 0 评论 -
HDU-6047 优先队列
题目Maximum Sequence题意给两个数组 {ai}, {bi}, 现在要将扩展数组 {ai} 从 an+1 到 a2n,对于每个新增的 ai : 必须从 {bi} 中选出一个 bk, ai 需要满足 ai ≤ max{aj - j│bk ≤ j < i}, bk 只能被选择一次。 你需要找出 max{∑2nn+1ai\sum_{n+1}^{2n} a_i } modulo 109+7原创 2017-09-14 19:37:48 · 264 阅读 · 0 评论 -
HDU-6194 后缀数组+lcp+rmq
题目string string string题意给一个字符串,问该字符串中出现次数正好为 k 次的不同子串个数。题解后缀数组+lcp+rmq。先用后缀数组求出高度数组 lcp。然后遍历 lcp,加上出现 k 次的子串个数: ans+=max(lcp[i]...lcp[i+k−2])ans += max(lcp[i]...lcp[i + k -2]) 还要减去子串出现大于k次的: ans−=m原创 2017-09-14 19:33:48 · 332 阅读 · 0 评论