ACM算法
beckyUp
他强任他强,过题我在行
展开
-
贪心+优先队列
优先队列&贪心 最近遇到很多题目的贪心都用优先队列来优化,现在简单的讲一讲一个比较难想到的优化Moo University - Financial AidBessie noted that although humans have many universities they can attend, cows have none. To remedy this problem, she and h原创 2017-03-31 23:05:47 · 515 阅读 · 0 评论 -
字典树经典题目 hdu 1251 统计难题
Problem Description Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀).Input 输入数据的第一部分是一张单词表,每行一个单词,单词的长度不超过10,它们代表的是老师交给Ignatius统计的单词,一个空行代表单词表的结束.第二部分是一连串的提问,每行原创 2018-01-29 16:59:01 · 162 阅读 · 0 评论 -
codeforces 920C【巧解】
这是一道非常简单的题,题目大意就是,给你一个从1-n的一个排列,再给你一个由0和1组成的串s,要求如果第i位出现了1 那么原先的排列中的第i个数和第i+1个数能进行交换,不限交换次数,问你最后能否使得该排列升序一般我们的解题思路都是 我们去找连续的1存在的位置,然后给这一串数据排好序,再对处理过的串进行升序分析。 思路很简单,我们也很容易想到,而且这样的话时间复杂度也是O(nlogn)当原创 2018-02-05 21:20:34 · 258 阅读 · 0 评论 -
2018年牛客网寒假多校赛第四场 E题 通知小弟 【有向图求强连通缩点】
链接:https://www.nowcoder.net/acm/contest/76/E 来源:牛客网题目描述 在战争时期,A国派出了许多间谍到其他国家去收集情报。因为间谍需要隐秘自己的身份,所以他们之间只是单向联系。所以,某个间谍只能单向联系到一部分的间谍。同时,间谍也不知道跟他联系的是谁。 HA是间谍们的老大,但他也只能联系到部分的间谍。HA现在有一项命令有告诉所有的...原创 2018-02-11 19:48:15 · 468 阅读 · 0 评论 -
ACM-ICPC 2018 徐州赛区网络预赛 C. Cacti Lottery【暴力求期望】
这个题,读懂题意以后就是暴力的时间,可惜最后半小时,我没来得及调完bug,赛后才过的。题目大意 给一个3*3的方格填入 1-9 九个数 有些数是已知的,有些数是对方已知但我未知的,有些数是大家都未知的 我要计算取得最大的对应值的期望 (题目分析有点迷,读题很久,不知道是否有讲清楚,就是站在我的角度看一个知道了某几个数的人的最终成绩的期望。还是看不懂的去看原题吧。我自己也讲不清楚)分...原创 2018-09-09 19:13:11 · 704 阅读 · 0 评论 -
2017CCPC 秦皇岛现场赛
E题这个题因为最多就只能增加一个CCPC 所以考虑所有能增加的情况就好了#include <bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=2e5+50;char ch[maxn];int main(){ int T; scanf("%d",&T); ...原创 2018-09-19 10:41:29 · 345 阅读 · 0 评论 -
Even Parity UVA - 11464 [暴力]
题目就是给定一个10阵的图,然后要求每个点的上下左右四个数的和为偶数n=15 最多有2^255种但是只要枚举第一行就可以推出后面的数枚举的话,用bitset就方便很多#include <bits/stdc++.h>#define rep(i,a,b) for(int i=a;i<=b;i++)#define sc(x) scanf("%d",&x)usin...原创 2018-10-11 22:18:55 · 171 阅读 · 0 评论 -
2018 ICPC 焦作 E [大数+ 数论]
熟悉一下大数的板子import java.util.Scanner;import java.math.*;public class Main { public static int [] prime = new int [5001]; public static int [] isprime = new int [5001]; public static int tot = 0; ...原创 2019-09-17 14:10:32 · 317 阅读 · 0 评论 -
来自看错题意的一份代码
由于之前看错题意了,花了很长的时间写了一份代码 大概就是先求最短路,再求次短路的暴力算法 算是复习了一下最短路和路径记录吧,并且希望下次看清楚题意再做题。如果按照代码翻译一下,就是建立一个图,求两点之间的最短路,再求次短路。 最后输出两者和#include using namespace std;int mp[150][150];int a[150][150];int b原创 2018-01-08 21:31:40 · 675 阅读 · 0 评论 -
codeforces 586c The Big Race 【数据超出long long 范围】
cf 的题第一次遇到了溢出long long 的情况,这道题目,通过限制他超出long long 的情况,防止溢出,并且在计算的时候,double 的长度更长一点,在大数相乘的时候采用double 防止溢出,并且简化题目题意:给你一个t ,w,b, w,b,是两个人的步长,t 是路程总长度,当两人速度相同的时候,在终点设置一个深渊,任何人都不能跨过去,最后谁距离终点最近谁为赢家,问两人平局的概原创 2018-01-11 15:58:10 · 387 阅读 · 0 评论 -
八数码问题的初次解决(康托展开+bfs)
八数码问题,常常是很多书上的例题,他作为一道经典的搜索题,被很多人誉为 不做过人生不完整,然而,对于这道题,实在是有太多高端的解法,然而我对于A*的理解还颇有偏差,于是选择了最普通的算法去完成这个问题,事实上,对于仅仅是八个数的题目来说,这道题目还是有很多方法可以解决的,下面我就简单的讲讲我做的那一种,而目前能力水平上的局限,希望能够在以后慢慢填补,下一次再用A*把这道题目做出来。The 15-pu原创 2017-04-03 20:45:06 · 627 阅读 · 0 评论 -
暴力算法瑰丽版——动态规划
今天讲的算法是动态规划,所谓动态规划就是讲需要重复出现的问题的答案记录下来,或者是前面的子问题对后面的问题有帮助的,把子问题的答案记录下来,这样就可以减少重复的计算,以此来降低时间复杂度,一般适用于有最优子结构和重叠子问题的情况比如说,我们求最长上升子序列的问题:一个数的序列bi,当b1 < b2 < … < bS的时候,我们称这个序列是上升的。对于给定的一个序列(a1, a2, …, aN),我们原创 2017-02-27 00:21:54 · 419 阅读 · 0 评论 -
二分图匹配
最近做了一套匹配的题,然后就想简单的写一下 关于二分图匹配的问题。 首先二分图匹配是给N个人 分配P个任务,每个人对应一个任务,问能够匹配到的个数,而当个数最多是,这就是我们说的二分图的最大匹配,当每个人都有任务时,就是我们说的完美匹配。 那么这种问题应该如何求解呢? (当然,我们可以增加一个源点和汇点变成最大流问题)当然我们也可以通过另外一种方法现在我们假设我们通过dfs 不断寻找增广路来实原创 2017-10-11 21:33:57 · 484 阅读 · 0 评论 -
hdu 2819 Swap [二分图匹配]
这道题其实是一道比较简单的题,但是我之前WA了一个晚上,简直不敢相信,当然也是我太想当然了,其实之前的写法有很大的问题,小数据就测不出来问题,所以反思一下,还是要谦虚,仔细啊。。这个题就是给你一个N*N的一个由0和1组成的图,然后让你通过交换行和列把他编程斜右下对角线上的元素都是1的情况,问你能不能实现,如果能,输出交换路径。根据题意我们发现,如果我们要满足斜对角线都是1的情况,至少要满足每一行都有原创 2017-10-13 09:18:44 · 214 阅读 · 1 评论 -
CodeForces 347C Alice and Bob
在一个有n个不同数的集合里面,Alice 和Bob分别任选两个数,x,y 要求|x-y|不在集合中,如果有一个人不能选,则输了,Alice 先选择 求最后的胜利者分析,对于给定的一个序列,最后要满足的条件的序列一定为 d,2d ,3d…… 所以 只要求出整个序列的GCD 再用最大值/gcd 得到的个数-N 再看奇偶就可以了虽然这道题这样看是一个水题,但是非常巧妙,不容易想到。#include原创 2017-07-21 16:05:11 · 361 阅读 · 0 评论 -
codeforces 888E Maximum Subsequence
题目大意: 这道题目给了一个序列和给定的m ,要求在这个序列中求若干个数使得他们的和对m取模后最大,然后数据量给定的是35题目分析:开始的时候,想到对于求和取模最大,感觉并没有什么可以找的规律,唯一的方法就是暴力,但是对于35个数来说,每个数都有取或者不取的可能,2^35远远超过了时间上限,所以显然不能直接暴力,所以这道题稍微转了一个弯,先将所有数据一分为二,暴力求出所有的情况,然后两边取模后,对原创 2017-11-15 22:42:53 · 291 阅读 · 0 评论 -
2018 ICPC焦作 F 【模拟+bfs】
#include <bits/stdc++.h>using namespace std;char s[4005][6105];typedef pair<int,int> PII;map<PII,int>mp;int tot=0;int M,N;const int maxn = 2e6+50;const int inf = 0x3f3f3f3f;...原创 2019-09-17 14:15:57 · 241 阅读 · 0 评论