自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

LOI_pingxing的博客

Are you enjoying the time of EVE?

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

原创 [日结]

Day 10.16日安排:整理试题、基础算法其实大部分时间耗在了出题上 与dfkd验证了一个很有意思的想法,扩展成了一道题目关于贪心 经验:一定要多想几组数据来卡自己,不一定随机,但一定要多考虑几种情况 要对自己的思路有自信 贪心并不只是排序,而是对最优决策的模拟关于58模拟赛总结 还是思路不够完整……缺乏对所有状态的考虑 多注意1的状况和端点状况

2017-10-16 21:51:36 375 1

原创 Mark几个网址

码住,关于基础算法的题目推荐

2017-10-12 20:38:56 911

原创 [模板]ST表

题目←可以O(1)的解决RMQ问题 不过不支持修改 基本基于DP,以最大值为例,st[i][j] = max(st[i][j - 1],st[i + (1 << j - 1)][j - 1]);#include<iostream>#include<cstdio>using namespace std;const int MAXN = 200000 + 50;int st[MAXN][30

2017-11-09 21:14:09 282

原创 [模板]倍增LCA

洛谷P1967用倍增法,fa[i][j]表示节点i向上 2^j步所能到大的点 minx[i][j]表示i向上2^j步所经过的最小边#include<iostream>#include<cstdio>#include<algorithm>#define LL long longusing namespace std;const int MAXN = 200000 + 50;struct

2017-11-09 13:48:04 285

原创 [模板]线段树

codevs49271、注意代码是左闭右闭的线段树,mid在左区间内 2、打权值线段树时注意线段树右端点大于最大值#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#define L(w) w << 1#define R(w) w << 1|1#define INF 1061109567type

2017-11-09 11:00:26 269

原创 [codevs1004]四子连棋

题目←没什么思维难度的搜索,但比较锻炼思路的清晰程度 外加: 1、x & (1 << j),x第j位为1,得到的是(1 << j) 2、’||’、’&&’在使用时,对下面的影响一定要想清楚#include<iostream>#include<cstdio>#include<algorithm>#include<queue>using namespace std;const int M

2017-11-09 08:13:40 422

原创 [vijos1048]送给圣诞夜的贺卡

题目←不看数据范围一定想贪心系列….. 暴搜就可以了?然而不行….TLE….. 于是考虑减枝 题目要求价值总和最大,就按大->小排序 就从最大的选 然而仅仅这样复杂度不会降…… 需要配合后缀和食用 当发现目前已选+后面待选的总和(即都选)依然比目前答案要小时,不搜 因为已经按大小排过序了,搜到较大答案的时间靠前的可能性比较大 达到减枝效果#include<iostream>#in

2017-11-08 20:36:31 321

原创 [模板]高精度

copy from DQS…..题目: codevs1331 codevs3115~3118Tips: 1、为防爆栈加取地址符; 2、len的及时更新求模数的话,在/最后返回a就可以了 但直接返回会re,不知道为什么#include<iostream>#include<cstring>#include<cstdio>#include<algorithm>typedef long l

2017-11-07 20:31:37 240

原创 [洛谷P2055]假期的宿舍

题目←存一波匈牙利板子 check数组还是老老实实for一遍更新吧,回溯的时候更新容易出事//:-)#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#define LL long longusing namespace std;const int MAXN = 1000 + 50;int n

2017-11-06 20:59:11 378

原创 [洛谷P1850]换教室 概率与期望

要分清哪些状态是独立的,哪些状态对期望有影响 一开始傻傻的在通过和没通过之间取min…… 事实上,在求期望的前提下,真正影响的决策是是否申请 以及万万没想到Floyd打次了 map[i][i] = 0才对发现当前时间段的状态仅仅与上一时间段的状态有关 然后上一时间段的情况(未完,放学了)#include<iostream>#include<cstdio>#include<cstring

2017-11-04 21:58:49 327

原创 [题目总结][动态规划] 更新ing

待更新…… 动态规划是通过拆分问题,定义问题状态和状态之间的关系,使得问题能够以递推(或者说分治)的方式去解决。以上摘自知乎。 就停课以来做的题来看,除了那些根本不会的,要注意的大概有 1、明确状态定义 2、考虑初始状况 3、注意端点状况 4、时间复杂度,时间复杂度,时间复杂度vijos1232核电站问题 也是洛谷的双塔问题 orz O(n^3)A掉此题的Frankcodevs

2017-11-04 18:38:10 287

原创 [codevs2488]绿豆蛙的归宿

题目←第一道期望和概率相关的题…… noip Day -6了才发现对于期望卵都不会……思路: 求距终点距离的递推式: dis[f] = dis[t] + l[i].v 加上期望 E[f] = E[t] +l[i].v 这是对于f只有t一条出边的情况 多条出边时,设G为f所有出边的集合 E[f]=∑e∈GE[e.t]+e.vout[f]E[f] = \sum_{e\in G}\frac

2017-11-04 09:38:08 264

原创 [洛谷P1315]观光公交

题目←模拟+贪心 一开始看到10^5的数据,以为要klogn就敲了个线段树上去 结果没考虑后效性,只过了3个点 正解: 一开始先处理出每一站的到站时间是对的,而随着修改到站时间的改变不一定满足前缀关系 假设在某一站有人很晚才出发,那不管先前改变了多少后面的到站时间都是不变的 综上 还需要维护修改一段距离时最远能影响到的点(递推标签的由来) 设i修改i后的线段最远影响到的点为G[i]

2017-11-03 21:15:32 351

原创 [洛谷P1313]计算系数

题目←在wwq大佬博客发现的,将数论知识点总结的很好的题 也可以用杨辉三角求组合数,不过就跟着大佬练扩欧吧……#include<iostream>#include<cstdio>#include<algorithm>#define LL long long#define P 10007using namespace std;const int MAXN = 20000 + 50;LL

2017-11-03 16:38:50 341

原创 [codevs1213]解的个数 二分 + exgcd

题目←扩欧,求不定方程解的个数 我们已经知道通解x0 = x +- (b/gcd(a,b))*t,那只要知道有多少个t使x在题目给定的范围中就行了 但还有y 怎么办?求交集! 分别二分确定在x取值范围内合法的t的范围和在y取值范围内合法的t的范围 然后交一下 值得一提的是,对于同一个t,由exgcd求出的x,y而找到的一组通解为 x + (b/gcd(a,b)) * t,y - (a/

2017-11-02 20:15:27 256

原创 [模板][洛谷P1516]青蛙的约会(exgcd)

题目←设k步后相遇 题目实际要求X+m∗k≡Y+n∗k(modL)X + m*k\equiv Y + n*k(\mod L) 不写成同余方程的话,就是X+m∗k−q∗L=Y+n∗k−p∗LX + m*k - q*L = Y + n*k - p*L 移项(m−n)∗k+L∗(p−q)=Y−X(m - n)*k + L*(p - q) = Y - X m - n –>a,L –>b,Y - X

2017-11-02 17:24:00 300

原创 [模板][洛谷P1835]素数密度(区间筛)

题目←每个数n的最小质因子一定不超过n√\sqrt{n} 预处理出m−−√\sqrt{m}内的素数表,删去每个素数在n-m区间内所有倍数,剩下的一定全为素数 del数组采用下标偏移,i实际表示数n+i是否已被删去 del数组大小为0~m-n#include<iostream>#include<cstdio>#include<algorithm>#include<cmath>#defin

2017-11-02 10:10:55 460

原创 [模板][洛谷P3383]线性筛素数

题目←#include<iostream>#include<cstdio>#define LL long longint n,m;int prime[10000010],cnt;bool sh[10000010];void solve(int n){ for(int i = 2;i <= n;i ++){ if(!sh[i])prime[++cnt] = i;

2017-11-02 08:38:06 232

原创 [洛谷P2898][USACO08JAN]haybale猜测Haybale Guessing

题目←题意: 总共有n个互不相同的正整数,LYK每次猜一段区间的最小值。形如[li,ri]这段区间的数字的最小值一定等于xi。 我们总能构造出一种方案使得LYK满意。直到…… LYK自己猜的就是矛盾的! 例如LYK猜[1,3]的最小值是2,[1,4]的最小值是3,这显然就是矛盾的。 你需要告诉LYK,它第几次猜数字开始就已经矛盾了。10^5~10^6数

2017-11-01 18:21:00 344

原创 [洛谷P1658]购物

题目←因为看方法大概跟题解里的不太一样,就另写了个题解丢上去了 这里就不再写了……#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;int x,n,v[10010],cnt;int dp[10010],ans = 10010;bool exist[1001

2017-10-31 11:02:16 471

原创 [洛谷P2375]动物园

题目←很容易发现,题目要求的实际是某一位置的next[i]在小于等于 i/2时的回溯次数 但是暴力处理每一位的next[i]会n^2…… 有一点是我没有发现的,也是对next数组理解不足所致: 对于长度确定的next[i],它向前匹配的次数是一定的,因为next失配时也一直是从前缀中向前查找…… 所以可以记录deep[i] -> next长度为i时向前匹配的次数 那在找第i位的答案时只需要

2017-10-29 19:27:03 364

原创 [模板]kmp[poj3461][codevs5757]

codevs5757#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;const int MAXN = 1000000 + 50;char s1[MAXN],s2[MAXN];int next[MAXN];int n,m,ans;int main(){

2017-10-29 18:52:47 261

原创 [队内测试Day10.26][P97]T1 字符串+前缀和

用适当的变量名代替表达式使代码更简洁

2017-10-26 17:24:56 200

原创 [vijos1907][codevs3729]飞扬的小鸟

题目←n <= 10000,m <= 1000,凑成10^7刚好 所以设dp[i][j]为到位置i高度j的最小步数 一个显然的转移是dp[i][j] = min(dp[i - 1][j - h[i][0]],dp[i - 1][j +h[i][1]) 然而我们注意到,在一个地方只是可以多次点击的 也就是说,h[i][0]可以累加多次 枚举h[i][0]累加次数会T两个点 但我们注意到,一

2017-10-26 16:37:20 444

原创 [vijos1232]核电站问题

题目←大概需要更多方案数这方面DP的练习……题意:在n个位置放 <= m个核电站,有多少种放法使最长连续核电站数 <= m dp[i][j]定义:以第i个核电站为终点,最放连续j个核电站的方案数 这样若j位置连续大于等于1个,则方案数为dp[i][j] = dp[i - 1][j - 1], 若位置j连续为0,则为dp[i - 1]这一层所有状态方案数的总和 注意枚举时j始终 < m,#in

2017-10-25 16:56:42 377

原创 [vijos1235]天堂的馈赠

题目←状态定义很显然的DP题 设dp[i][j]为第i秒位于位置j所能获得的最大礼物价值 这样dp[i][j]可以由dp[i - 1][j - 1],dp[i - 1][j],dp[i - 1][j + 1]推来一开始怎么交怎么wa,郁闷不已 然后发现是这句话:当礼物在某一秒末恰好到达小杉所在的格子中,小杉就接到了这个礼物所以。。所有到达时间是浮点数(速度不被H整除)的礼物都是接不到的……

2017-10-25 10:45:50 359

原创 [队内测试Day10.24Final]逆序对+表达式计算+贪心+图论+数论?

T1#include<cstring>#include<cstdio>#include<algorithm>#include<iostream>#include<map>#define L(w) w << 1#define R(w) w << 1|1const int MAXN = 10000 + 50;using namespace std;int n;char s1[MAXN

2017-10-24 20:28:42 223

原创 [vijos1037]搭建双塔

有人说这是多重背包可行性问题?日本白里还有讲?

2017-10-23 21:21:05 320

原创 [vijos1292]火车票

为什么我能做的DP好像只有序列型QAQ

2017-10-23 17:20:01 320

原创 [错题记录][vijos1280]The Moment-遇见

链接←70分,改天再调 因为是给pascal的题目,在c++这里负数的数组下标就很难处理#include<iostream>#include<cstdio>#include<cmath>#include<algorithm>using namespace std;const int MAXN = 3000 + 5;int map[MAXN][MAXN];int n,p = 10611

2017-10-23 15:59:28 314

原创 [codevs1046]旅行家的预算

题目←瞎贪心…… 记录当前为止最便宜的加油站minx 因为每一站油量最多为C,所以在当前站没加满的情况下,每走到一条新路优先加单价最小的加油站 要是加满的话,直接跳到目前的加油站 加满了油还走不到下一站就是非法情况了……(废话)#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using nam

2017-10-22 18:28:19 302

原创 [队内测试Day10.22T4][洛谷P2680]运输计划

题目←吐槽下考场上的魔改题面…… 看出来是运输计划后,记得以前听说过是二分,于是开始摸鱼…… 不会树链剖分,考场上卡掉一个点 尽管实现步骤很麻烦,但思路清晰的话,具体打起来还是比较容易的一道题 能摸出来大概是人品比较好……#include<iostream>#include<cstdio>#include<algorithm>#define LL long longusing nam

2017-10-22 18:14:27 325 1

原创 [队内测试Day10.22T3][codevs1684]垃圾陷阱

还是要想明白状态的定义,保证在转移时符合实际

2017-10-22 17:19:56 332

原创 [队内测试Day10.22T1][bzoj1821]部落划分 Group

题目←二分+最小生成树验证,明显添的边越多分成的组就越少,满足单调性 考场zz的把数组开了1000,直接卡到20pts#include<iostream>#include<cstdio>#include<algorithm>#include<cmath>using namespace std;const int MAXN = 1000000 + 50;struct edge{

2017-10-22 16:53:03 261

转载 [转]拦截导弹类问题 (Codevs4888零件分组POJ1065Wooden Sticks)(LIS及其覆盖问题)

拦截导弹题意:求最长不上升子序列长度;求一个序列最少分成几个非增子序。第一问易求,已知序列a,令f[i]为a前i个元素的最长非增子序的长度,则有 f[i]=max{f[i],f[j]+1} (1<=j<=i-1且h[j]>=h[i]). LIS另有nlogn做法,设g[i]为长度为i的最长不上升结尾最小是什么,二分查找更新次数组可得长度。解本题则可以倒序做LIS。 对于第二问,可以维护一个单调

2017-10-21 19:53:06 264

原创 Mark待练习的东西

trie树; ST表; 概率和期望; 划分/区间型DP;

2017-10-21 19:47:29 240

原创 [洛谷P3962]浮游大陆的68号岛

题目←两次前缀和来解决,式子并不难推 将二次前缀想像成三角形会比较好理解需维护: 1、距离前缀; 2、总价值(运费)前后缀; 3、个数前后缀;具体式子详见代码 比较恶心的是取模意义下随时会有负数,并不太会处理,求大佬指教: qz、hz中的1表示运费,2表示个数#include<iostream>#include<cstdio>#include<algorithm>#define L

2017-10-21 19:43:24 303

原创 [洛谷P1902]刺杀大使

题目←总觉得spfa一脸可做的样子然而过不了 于是乖乖打了二分+验证#include<iostream>#include<cstdio>#include<queue>#include<cstring>#include<algorithm>using namespace std;const int MAXN = 1000 + 50;int mr[] = {0,1,-1,0},

2017-10-21 16:56:10 531

原创 [洛谷P1378]油滴扩展

题目←题面里讲述的题意很明白 一开始wa掉到的点:1、有的点会在没扩展前就被覆盖掉; 2、x,y都要取min(zz错误)#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<cmath>using namespace std;const int MAXN = 200 + 50;s

2017-10-21 08:10:34 479

原创 [hdu5285]wyh2000 and pupil

题目←二分图判定+贪心 对每个联通块内的黑白点数进行统计,将个数较多的累加到ans1中 需特判两个情况: 1、点数 < 2,此时一定无法分成点数均 >= 1的两组 2、没有边,此刻若按上述方法贪心,会出现第二组个数为零的情况 也就是说m == 0和ans2 == 0只需要判一个就好了#include<iostream>#include<cstdio>#include<queue>#i

2017-10-20 20:57:01 226

空空如也

空空如也

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

TA关注的人

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