- 博客(15)
- 收藏
- 关注
原创 Educational Codeforces Round 42 (Rated for Div. 2) A~D
A.Equator 题意一串数列,到第几个数为止,使得前面的数的总和大于等于全部总和的一半。很简单,只要注意精度问题,不要用前面的求和大于等于总和的一半,而应该是前面的求和的2倍大于等于总和来算。代码#include<iostream>#include<cstdio>#include<cstring>#include<vector>#incl...
2018-04-11 17:09:04 140
原创 HDU-4848 Wow! Such Conquering! (floyd+dfs+剪枝)
链接大致意思给出各个星球到其他星球的距离,然后给出一个到其他星球的最晚时间。求到各个星球的时间的和。其实挺好理解的,但是最扎心的是下面给的hint是错 的!!!我是真的看了半天题目以为理解了又被这个hint劝退了。思路Floyd出最短路径。然后开始dfs.我一开始以为8000ms随便写,然后还是会超时的。剪枝。目前有的几种可以直接跳出循环思想。1当前已耗费时间+去下一个星球的时间已经超过ddl了...
2018-04-02 22:58:58 489
原创 18-2-23~3-1一周算法总结(字典树)
23字典树大致理论就是“利用字符串的公共前缀来节约存储空间”。用的是指针,数组字典树先放着QAQstruct Trie{//结构体,每个位置的单元 Trie *nxt[26];//26是因为最大26个字母 int v;//这里只计算出现次数,实际上结构体内可以存很多信息,但需要对下面的creat和find修改};Trie * root;void creatTrie(char *s){ ...
2018-03-10 11:06:00 182
原创 poj 3368 Frequent values(RMQ)
题目链接给一个单增序列求所给的区间内数字最多的重复次数。思路我一开始想歪了,但是居然还是ac了。mx[i][j]=Max(mx[i][j-1],mx[i+(1<<(j-1))][j-1])这个Max操作很复杂,因为我mx[i][j]是一个结构体,存放最大值,左端值,左端重复个数,右端值,右端重复个数。要比较最大值是2个区间的最大和他们中间连起来后可能出现的最大值。然后更新左端值,左端重...
2018-02-12 21:42:48 203
原创 18-2-6~2-12一周算法总结(数论,st表,树状数组)
7,9数论咕咕咕11st表,树状数组内容有点多。慢慢补。第一,RMQ,查找区间最大(小)。对于一个总长度n的区间,一次全查找时间为n,最糟糕的情况下有n^2的情况去查找,例子一多必然超过时间复杂度。所以打表。一开始想到的就是n*n的双重循环打表,但是不行,rmq其实就是对它的优化,dp[i][j]表示从i起的2^j的长度的区间。而dp[i][j]=max(dp[i][j-1],dp[i+2^(j-...
2018-02-12 21:26:51 172
原创 18-1-30~2~5一周算法总结(DP,二分图,最小生成树)
30DP(最长上升子序列和lcs)摸了1DP(01背包和完全背包)01背包 for(int i=1;i<=n;i++){ for(int j=k;j>=w[i];j--){ dp[j]=max(dp[j-w[i]]+v[i],dp[j]);//维护对于第i个物品,不放的时候的最大值和放了之后空间减少w[i]的最大值 } }完全背包和01背包基本一
2018-02-05 16:57:18 212
原创 Codeforces Round #459 (Div. 2) C. The Monster
链接就是昨晚的cf题。但是自己卡了半天,最后写了个dp也还是逃不过n^3,超时。但是看到一个很好很好的想法,现在就想记一下而已。没有代码。对于一个随机序列,我们设置一个l和r干嘛的?我们吧“?”先全部看成是“(”或“)”然后l记录把?看成)后未配对的(的个数然后r记录把?看成(后未配对的(的个数来一个双重循环ans=0;for() l=0,r=0;
2018-01-30 09:47:51 262 1
原创 18-1-22~28一周算法总结(DP,并查集)
26查并集。实际上是建立一棵树,拥有共同的结点则在一个集合里。主要的三个操作。const int maxn=1e5+5;int f[maxn];//int rank[maxn]; void init(){//初始化// for(int i=1;i<maxn;i++){ f[i]=i;// rank[i]=0; }}int find(int x){//
2018-01-28 17:20:51 152
原创 POJ-3413 Pots(数学算法)
链接点击打开链接倒水问题。bfs其实就解决了。但是很早以前我一开始遇到的时候我还没有那种思想,但是还是ac掉了。思路对于一个a,一个b,通过倒水,可以得到什么?在a,b互质的情况下,可以得到0~max(a,b)之间的所以数字。如果不互质,设x为他们的最大公约数,a/x 和b/x是互质的,那么a/x和b/x 获得的所有数字*x即a,b可以获得的数字。所以可以令x=gcd(a,
2018-01-26 15:26:17 290
原创 POJ-1970 the GAME(dfs)
题目链接题意大概就是给你一个已经放好棋子的棋盘,然后问谁赢了(或者都没赢)。赢的条件是有且只有5个相同颜色的棋子连续的摆放在同一条线上。且不会出现2种棋子都赢的情况。思路其实一开始有点想歪,什么八个方向全部遍历,就把脑子弄得有点乱,其实后来想通了也没那么,直接往下找,看又几个联通棋子,如果==5,那么反向找一下,如果反向的位置上的和现在的位置上的棋子不一样或者根本没有棋子,那么就找到谁
2018-01-26 14:55:47 290
原创 Codeforces Round #118 (Div. 1) A. Plant(快速幂)
题目Dwarfs have planted a very interesting plant, which is a triangle directed "upwards". This plant has an amusing feature. After one year a triangle plant directed "upwards" divides into four tr
2018-01-23 20:58:48 321
原创 CodeForces 20C Dijkstra?
题目ou are given a weighted undirected graph. The vertices are enumerated from 1 ton. Your task is to find the shortest path between the vertex1 and the vertex n.InputThe first line co
2018-01-23 19:34:44 1422
原创 错误提示
突然来三道题https://vjudge.net/contest/208550#problem/Ahttps://vjudge.net/contest/208550#problem/Ehttps://www.nowcoder.com/acm/contest/67/B都是水题,但是我为什么要拿出来呢?因为我都卡了很久,2个多组输入一个long long.在这种方面被卡是很
2018-01-23 09:13:41 152
原创 UVA 514 rails
题:链接就是输一个n,有1~n节的车厢进栈出栈,然后问题目给出的顺序能否做到。一开始做的时候根本就没想用栈去模拟,导致自己弄了半天,然后弄明白了一个事情:如果读到一个x,那么在x后面的比x小的必然是一个单减有序数列。以这个为基础做判断,也能ac。代码如下#includeusing namespace std;int main(){ int n; while(cin>>n&&n!=0
2018-01-23 09:08:02 195
原创 今天的总结吧
首先做了2套题,附链接:https://www.nowcoder.com/acm/contest/67#questionhttps://vjudge.net/contest/208487有一说一,牛客网的题不知道为什么这么喜欢找规律(?)。然后是牛客网的我已经做完的感觉稍微难一点的题:先来J-闯关的lulu,这个规律一开始心没静下来的时候没找到,而且越来越烦。后来发觉是这样
2018-01-21 23:08:13 179
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人