
ACM算法
Luffy531
这个作者很懒,什么都没留下…
展开
-
3041 Asteroids(二分图最大匹配)
题解在一个N×NN×NN\times N的网格上,分布着KKK个行星。Bessie拥有一种能力,每次可以消灭一行或一列的行星。求Bessie最少需要多少次才可以消灭所有的行星。输入输入N,KN,KN, K。 接下来KKK行,每行输入2个整数x,yx,yx, y,表示一个行星的坐标。输出输出最少的次数思路把每行、每列都当作一个节点,网格中的点看作这些...原创 2018-04-22 19:19:49 · 254 阅读 · 0 评论 -
求解N阶幻方
#include #include #include #include #include #include #include #include using namespace std;const int N = 1e2 + 10;int arr[N]原创 2016-09-06 18:45:35 · 502 阅读 · 0 评论 -
变量命名法
骆驼命名法格式:单词之间不以空格或连接号(-,即camel-case)、下划线(camel_case)隔开。小驼峰命名法:第一个单词的首字母小写,其他的单词的首字母大写camelCase。大驼峰命名法:每个单词的首字母大写。例CamelCase帕斯卡命名法(同大驼峰命名法)格式:单词之间不以空格或连接号(-,即pascal-case)、下划线(pascal_case)隔开。例:PascalCa原创 2016-08-18 13:24:33 · 590 阅读 · 0 评论 -
HDU 5402 Travelling Salesman Problem(多校9 模拟)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5402题意:给出一个n×m的矩阵,位置(i,j)有一个非负权值。每个点只能经过一次,求从(1,1)到(n,m)权值总和最大的和,还需输出路径。思路:因为走的点越多越好,所以得到规律,当n,m任意一个为奇数时,均可以走完所有点。当n,m全为偶数时,当点(i,j)的i和j不同奇偶时,则除了(i,j)这个点均可原创 2015-08-18 19:31:32 · 665 阅读 · 0 评论 -
某场CF B Octagons(模拟)
题目:http://codeforces.com/gym/100004/attachments (需下载到本地,doc格式)题意:如图 这是由多个八边形(不一定为正八边形)拼接在一起的图形。八边形的边由a,b,c三个字母构成,每条边对应一个字母,且同一个八边形的边只能由2种字母构成,相邻的不相等。判断给定的一个只由abc构成的字符串,是否能在图中围成一个封闭的图形。思路:模拟。对于2个相邻一样原创 2015-08-07 10:45:43 · 589 阅读 · 0 评论 -
POJ 2566 Bound Found(前缀和排序 + 尺取法)
题目链接:http://poj.org/problem?id=2566题意:对一个长度为n的数列,做k次查询,每次查询一个数t,求原数列中的一个子区间[l, r],使得该子区间的和的绝对值最接近t。思路:在原数列开头添加一个0,处理好现数列a[N]的前缀和pre[N]。则原问题转化为在前缀数组中求2个数pre[i],pre[j]的差的绝对值最接近t的。对于每次找到的2个下标分别为i和j的2个数,所对原创 2015-07-27 14:10:29 · 1173 阅读 · 0 评论 -
Codeforces Round #305 (Div. 2)
A:http://codeforces.com/contest/548/problem/A 题意:给定字符串s和数字k。问s是否由多个长度为k的回文字符串构成。 思路:先判断是否字符串长度是否被k整除,若是,直接模拟判断是否由多个长度为k的回文字符串构成。B:http://codeforces.com/contest/548/problem/B 题意:给定一个n*m的矩阵,只包含0和1。q次操原创 2015-05-27 11:21:06 · 818 阅读 · 0 评论 -
Codeforces Round #303 (Div. 2)
A:http://codeforces.com/problemset/problem/545/A 题意:告诉你车的碰撞情况,求最后好的车剩几辆 思路:直接模拟B:http://codeforces.com/problemset/problem/545/B 题意:输入两个等长字符串s和t,都只包含0和1。定义s和t的距离为s和t中相同位置i并且s[i]!=t[i]的个数。 比如0001和101原创 2015-05-20 10:34:04 · 668 阅读 · 0 评论 -
BestCoder Round #33 1001 zhx's submissions
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5186题意:对给定n个b进制的数求和。但是题目要求在计算和时,如需进位的地方均不进位。思路: 按照题目要求直接模拟,类似大数加法。对每位的和直接对b取余。特别注意 最后的结果不能输出前导0。代码如下:#include <iostream>#include <iomanip>#include <c原创 2015-03-16 09:56:36 · 440 阅读 · 0 评论 -
Valentine's Day Round 1002 Misaki's Kiss again
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5175思路:暴力 若a^b=c,则a^c=b 设k满足gcd(n,m)=k且n^m=k 所以k必然是n的约数,又因n^k=m 所以枚举所有n的约数,对于每个约数得到一个m,判断是否满足。 小心暴数据。#include <iostream>#include <iomanip>#include原创 2015-03-15 11:13:19 · 507 阅读 · 0 评论 -
Valentine's Day Round 1001 Ferries Wheel
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5174说实话没怎么看懂题意。后来按照自己理解写了一发。 我的理解是这样。输入n个人的价值后,每个人去找缆车,只能上与自己价值相同的缆车。所以刚开始我先对每种价值统计人数,然后对所以不同价值的缆车排序后,判断是否满足条件。 输入的价值存在val[]数组里面,统计后存在arr[][]数组中。 例如 6原创 2015-03-15 11:12:00 · 471 阅读 · 0 评论 -
BestCoder Round#29 1001 GTY's math problem
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5170其实思路不难,若想比较这两个数,直接快速幂的话会爆数,所以可以取对数比较。 因为对数计算后得到的数为浮点数,则接下来就是浮点数比较大小的问题了。 有浮点数a,b。原创 2015-03-15 10:51:08 · 416 阅读 · 0 评论 -
Codeforces Round #260 (Div. 2) (DP没学好。。)
最近变懒了哎= =这是原创 2014-08-11 13:24:39 · 406 阅读 · 0 评论 -
Codeforces Round #259 (Div. 2) (最差的一次比赛。说多了都是泪)
这次就做了一道题,而且还过的好慢。。a原创 2014-08-02 03:31:57 · 813 阅读 · 0 评论 -
Codeforces Round #258 (Div. 2) (掉分不开森啊不开森)
A. Game With Sticks原创 2014-07-25 21:59:43 · 489 阅读 · 0 评论 -
有关vector数组的用法
刚学图论时,学的一个新知识,原创 2014-07-22 00:35:18 · 821 阅读 · 0 评论 -
Codeforces Round #257 (Div. 2)
还是只做了2道。哎,虽然速度比之前k原创 2014-07-20 12:39:17 · 401 阅读 · 0 评论 -
有关next_permutation()函数的用法, poj 2718
之前接触过一次next_permutation函数,今天做的时候原创 2014-07-16 20:07:27 · 576 阅读 · 0 评论 -
Codeforces Round #FF (Div. 2)
昨晚的比赛,只写了两道水的......原创 2014-07-14 15:39:47 · 450 阅读 · 0 评论 -
两道中等贪心题,poj 3040, poj 3190
题目:Stall Reservations思路:利用优先队列,先对区间左端点原创 2014-07-13 11:10:58 · 501 阅读 · 0 评论 -
能被7、11、13、17、19整除的数的特征
能被7整除的数的特征 若一个整数的个位数字去掉,再从余下的数中,减去个位数的2倍,如果差是7的倍数,则原数能被7整除。如果数字仍然太大不能直接观察出来,就重复此过程。 能被11整除的数的特征 把一个数由右边向左边数,将奇位上的数字与偶位上的数字分别加起来,再求它们的差,如果这个差是11的倍数(包括0),那么,原来这个数就一定能被11整除。 例如:判断49转载 2014-05-09 10:18:24 · 14140 阅读 · 0 评论 -
BestCoder Round #33 1002 zhx's contest
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5187题意:对1~n的全部排列{a[1],…,a[n]}中,求共有多少种排列满足如下两个条件。存在一个整数i(1≤i≤n)a[1],a[2],…,a[i]为单调递增或单调递减a[i],a[i+1],…,a[n]为单调递减或单调递增思路:利用递推来求最后结果。假设x[n]表示n个数时的种数为x[n]种原创 2015-03-16 10:23:35 · 437 阅读 · 0 评论 -
BestCoder Round#29 1002 GTY's birthday gift
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5171思路很简单。若用模拟的方法,每次都从集合中取最大和次大的两个数相加得到值后放入集合即可。做k次以上操作。但是由于k最大达1000000000,如果纯模拟的话肯定会超时。因为每个数都是整数,所以每次加入的数都为集合中最大的数,则只需取次大的数,而次大数正为上一次操作时最大的数。所以不难联想到斐波那契数原创 2015-03-15 10:55:17 · 404 阅读 · 0 评论 -
线性素数筛法
#include <iostream>#include <stdio.h>#include <algorithm>#include <string.h>using namespace std;typedef long long ll;const ll maxn=100005;bool is_not_prime[maxn];ll prime[maxn],sum;void init()原创 2015-03-16 08:56:12 · 479 阅读 · 0 评论 -
HDU 2647 Reward
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2647题意:boss需要发工资,每个人的最低工资为888,在给定的条件下,求boss需要发的最少工资和。 m个条件:每次为u和v,代表u的工资高于v的工资。若出现矛盾,则输出-1。思路:几乎为裸的拓扑排序,在节点入队时记录该节点在拓扑序中所并列排的名次。代码:#include <stdio.h>#in原创 2016-08-20 11:33:40 · 308 阅读 · 0 评论 -
HDU 1285 确定比赛名次(拓扑排序)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1285题意:共N个队伍,给出M个比赛结果,即u和v比赛,u胜v。求最终的比赛名次,若无法确定优先的,队伍号小的优先。思路:裸拓扑排序。 拓扑排序:每次取入度为0的点为优先的点,取出后,删除该点所连接的边,重复操作直至所有点取完。代码:(队列维护可能快一些?)#include <stdio.h>#inc原创 2016-08-11 23:55:15 · 281 阅读 · 0 评论 -
四道裸最小生成树
题目链接:HDU 1233 还是畅通工程题意:对给出的图,求最小生成树的总长度。代码:#include <stdio.h>#include <queue>#include <string.h>#include <algorithm>#include <vector>#include <iostream>using namespace std;const int N = 2e4 + 10;s原创 2016-08-20 11:23:18 · 284 阅读 · 0 评论 -
最小生成树基础算法
前提:并查集struct Node { // u -> v 值为 w int u, v, w; Node() {} Node(int a, int b, int c) { u = a, v = b, w = c; } friend bool operator < (Node a, Node b) { return a.w > b.w; }};// 预处理时f[原创 2016-08-18 00:13:30 · 249 阅读 · 0 评论 -
两道最短路裸题(HDU 2544 最短路 / HDU 1596 find the safest road)
题目链接:HDU 2544 最短路题意:给出n个点,m条边的图,求1到n的 最短路。代码:#include <stdio.h>#include <algorithm>#include <string.h>#include <vector>#include <queue>#include <iostream>using namespace std;const int M = 1e5 + 10原创 2016-08-20 11:02:21 · 348 阅读 · 0 评论 -
最短路基础算法
1 Dijkstra优先队列优化的Dijkstraint dij() { priority_queue<Node> q; q.push(Node(1, 0)); d[1] = 0; while (!q.empty()) { Node f = q.top(); q.pop(); for (int i = 1; i <= n; i++) { if (d原创 2016-08-16 23:48:28 · 324 阅读 · 0 评论 -
HDU 2112 HDU Today
2112DU Today原创 2014-07-25 14:06:06 · 391 阅读 · 0 评论 -
POJ 1050 / HDU 1081 To the Max(最大子矩阵和)
题目链接:POJ:http://poj.org/problem?id=1050HDU:http://acm.hdu.edu.cn/showproblem.php?pid=1081题意:给出一个n*n的矩阵,正负均有。求一个子矩阵使得该子矩阵的和尽可能的大。思路:类似于最大子段和,即将前i行至前j行的矩阵压缩成一行,利用一个数组c,c[k]表示第k列从第i行到第j行的和,接下来只需对原创 2016-08-03 20:26:31 · 363 阅读 · 0 评论 -
POJ 1260 pearls
题目大致的意思是:有c类珍珠,分别给出每类珍珠的价格和需要,现在求最少所需支付的价钱。当然买珍珠没那么简单,买其中一类珍珠为了防止顾客只买一两个,所以买其中一类珍珠必须再付十个该类珍珠的价格。而又因促销还是什么的。你可以把你需要的等级低的珍珠以相同的数量买等级更高的珍珠。那么在上述两个条件的情况下求最少支付。原创 2014-11-06 17:05:02 · 410 阅读 · 0 评论 -
HDU 1142 A Walk Through the Forest
HDU 1142 A Walk Through the Forest最短路+原创 2014-07-26 18:48:33 · 450 阅读 · 0 评论 -
三类背包问题
01背包:有N件物品和一个容量为V的背包。(每种物品均只有一件)第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。原创 2014-07-30 16:16:35 · 436 阅读 · 0 评论 -
UVA 11468 Substring(AC自动机 + 记忆化搜索)
题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2463题意:给定k个模式串,给定n个字母,每个字母均有一个发生概率,给定长度为l,求用给定n个字母构成的长度为l的不包含任何模式串的文本串概率。思路:利用k个模式串构成Trie,对于每个模式串结尾字原创 2015-10-21 22:25:47 · 439 阅读 · 0 评论 -
UVA 11019 Matrix Matcher(二维矩阵匹配ac自动机)
题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1960题意:给出一个n×m的矩阵一,在给出一个x×y的矩阵二,求矩阵二在矩阵一中出现的次数。思路:对于矩阵二的每行建立Trie,并在单词结尾结点记录走到该结点的为行数c(有多个可开数组记录),利用一原创 2015-10-16 16:00:47 · 951 阅读 · 0 评论 -
HDU 4787 GRE Words Revenge(在线AC自动机)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4787题意:Coach Pang学习英语单词,总共有n个操作,2种操作。每行读入一个字符串。如果字符串以+开头,此为单词(即模式串,不考虑重复)如果字符串以?开头,此为文章(即文本串,查询在此之前的单词在文本串中出现的次数)需要注意的是,文章是被加密过的,加密的方法就是将文章看作一个环,每次旋转上一原创 2015-09-10 21:54:19 · 1546 阅读 · 2 评论 -
LightOJ 1427 Substring Frequency (II)(AC自动机裸)
题目链接:http://lightoj.com/volume_showproblem.php?problem=1427题意:给定n个模式串,一个文本串,求每个模式串在文本串中出现的次数。思路:AC自动机裸题。代码:#include <iostream>#include <stdio.h>#include <string.h>#include <math.h>#include <algorit原创 2015-09-06 19:38:06 · 444 阅读 · 0 评论 -
HDU 3065 病毒侵袭持续中(AC自动机裸)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3065题意:给定n个模式串,一个文本串,判断每个模式串中在文本串中出现的次数。思路:AC自动机裸题。代码:#include <iostream>#include <stdio.h>#include <string.h>#include <math.h>#include <algorithm>#i原创 2015-09-06 17:47:58 · 376 阅读 · 0 评论