自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ONE MORE TRY

把该做的做好就好了!

  • 博客(26)
  • 问答 (2)
  • 收藏
  • 关注

原创 码力训练

= = Gerald 2017/7/25 17:48:19 心态崩了 Gerald 2017/7/25 17:48:22 今天 Gerald 2017/7/25 17:48:28 332 Gerald 2017/7/25 17:48:40 01 我sb Gerald 2017/7/25 17:48:45 靠队友爸爸 Gerald 2017/7/25 17:48:50 1h ...

2017-07-25 19:16:47 1728 1

原创 CodeForces822C【贪心】

思路: 对于每个位置,维护其左边以区间长度为 len 的最小值。#include<bits/stdc++.h>using namespace std;typedef long long LL;const int N = 2e5 + 10;struct asd{ int Left, Right; LL cos;}q[N];int n, x;vector<asd>a[N],

2017-07-30 23:58:42 458

原创 CodeForces296C【线段树】

思路: 线段树模拟。 先求操作数,然后操作数 * 增值 再一个线段树就好了#include<bits/stdc++.h>using namespace std;typedef long long LL;const int N = 1e5 + 10;struct Seg{ LL Left; LL Right; LL sum; LL flag;}node1[N<

2017-07-30 16:19:08 384

原创 CodeForces-232A【构造 二分】

对于3就是C(2, 2), 对于4就是C(2, 3), 对于5就是C(2, 4), 后面你可以发现,会是一个{1},{1,2},{1,2,3},{1,2,3,4}…而且是拿x与1,2相连会有1个环,然后每多一条边会每次按照那些序列增加环。 现在就变成了这种序列构造一个k,预处理出这个数量,二分一下,然后之后因为值小,模拟就好了。#include<bits/stdc++.h>using names

2017-07-30 10:30:20 344

原创 Codeforces818D【优先队列】

思路: 就是模拟一下吧。拿个优先队列存一下符合的颜色,每次对于每个是A的返回最小个数维护,就好了。#include<bits/stdc++.h>using namespace std;typedef long long LL;const int N = 1e6 + 10;struct asd{ int w; int id; bool operator < (const

2017-07-30 10:25:02 450

原创 CodeForces830B【树状数组+线段树】

思路: 就是 你好像就是要维护一下,你pop的当前值与之前的pop值的位置之间有多少个要移一移,然后算一下,然后就变成了模拟。。 线段树维护 值 和 位置,树状数组维护已经取了没有。 7 6 3 1 5 4 4 3代码:#include<bits/stdc++.h>using namespace std;typedef long long LL;const int INF = 0

2017-07-28 15:22:18 458

原创 CodeForces 623B【质因子预处理+DP】

题意: 给出n,a,b以及n个整数a1,a2…an, 可以对数组进行以下两种操作; (1)花费len*a的代价删除连续的len个数,len<|S| (2)花费b的代价将某一个a[i]加一或减一 每个数最多执行一次这样的操作; 使得这个数组所有数的GCD>1; 求最小花费; 思路: 因为删除操作不能一下子删完,所以肯定会剩下一个,那么就会是头一个或者最后一个。所以剩下的数可能有a[1]

2017-07-18 21:47:30 615

原创 FZU 1911【矩阵快速幂】

题意: F(n)为斐波那契数列,S(n)为其前缀和,给你n,m,求S(n)%m的值作为矩阵边长,构造矩阵行和列的值都不相等 思路: = =、强行把两道题凑成一道题; 求斐波那契前缀和–矩阵快速幂;(具体构造矩阵看代码) 构造方法: 四个角放好,然后水平,竖直放... 具体看代码(懒得写…)#include<iostream>#include<cstdio>#include<cstr

2017-07-18 20:51:29 408

原创 Lightoj 1119【状压DP】

题意: 有N个任务,对于每个任务给出N个花费,第 i 个花费指 这个任务执行之前已经完成了 i 任务的花费,求完成所有任务的最小花费。 思路: N <= 14 直接状压吧#include<bits/stdc++.h>using namespace std;typedef long long LL;/*题意:给出m个数,然后取n位数,保证相邻两个数的差值小于等于2,问有多少种这样的数

2017-07-18 20:47:31 424

原创 Lightoj 1138【二分 + 求 N! 的后导零个数】

怎么对于N求有多少后导零??? 因为每间隔 5 个数有一个数可以被 5 整除, 然后在这些可被 5 整除的数中, 每间隔 5 个数又有一个可以被 25 整除……一直到0然后知道了这个就可以直接二分求值; 二分类型:0000011111111 1: 代表num(x)>=num(mid)#include<bits/stdc++.h>using namespace std;typedef lon

2017-07-18 20:45:26 494

原创 Lightoj 1122【计数DP】

dp[ i ][ j ]: 前 i 位为第 j 个数字的方案; #include<bits/stdc++.h> using namespace std; typedef long long LL; int dp[15][15]; int a[15], n, m; int main(){ int T, cas = 1; sca

2017-07-18 20:41:48 524

原创 HDU 4007【尺取】

MMP??? 居然正方形是水平的…我不知道啊… 先根据 y 坐标从小到大排序,然后对 y 坐标尺取,然后对所在符合区间内的 点,存起来,以 x 坐标从小到大排序,再尺取一下… 复杂度 < N^2LogN;#include<bits/stdc++.h>using namespace std;typedef long long LL;const int N = 1e3+10;struct N

2017-07-18 20:39:19 364

原创 CodeForces 624C【二分图染色】

题意: 本来有一个由’a’,’b’,’c’ 组成的字符串,然后,在这个串里,相同字符 或者 相邻字符能构成边,然后就构成了一副图。 现在抹掉了这个字符串,给你这副图,问你能不能组成这个字符串。 思路: 其实重要的就是:如果存在两个点没有边,这两个点只能是 a,c; 那么问题变成,给我这副图的补图是不是能由 a, c 组成,边的相邻两点只能是 a-c; 那么就用染色可以简单地解决这个问题。

2017-07-18 20:33:49 621

原创 第15届上海大学程序设计联赛夏季赛暨上海高校金马五校赛H

思路:首先要知道:11+12+13+14+...++1n=ln(n)+C \dfrac{1 }{1} + \dfrac{1 }{2} + \dfrac{1 }{3} + \dfrac{1 }{4}+...++ \dfrac{1 }{n} = ln(n)+C 然后就可以为所欲为【暴力吧!】 拿个优先队列什么的,或者直接num∗log∗(num)num*log*(num) sort好像都行???

2017-07-13 10:24:22 508

原创 CodeForces569C【你会不会暴力啊】

题意:π(n) — <=n 的素数个数 ; rub(n) — <= 的回文数个数; 找一个最大的n满足:π(n) <= A*rub(n)思路:现在题目做多了,都不敢暴力了?? 难道第一感觉不是能不能暴力么? 然后感慨“还有这种操作”??代码:#include <bits/stdc++.h>using namespace std;typedef long long LL;typedef

2017-07-13 10:10:05 436

原创 51Nod 1076【无向图 判断是否同一环】

模板题:#include <bits/stdc++.h>using namespace std;typedef long long LL;typedef pair<LL,LL>PII;const int nMax = 2e5+10;int n,m;int first[nMax],nxt[nMax],to[nMax],e;void addadge(int u,int v){ to[

2017-07-13 10:05:36 342

原创 CodeForces697C【LCA】

题意:给出一棵以 节点1 为root的完美二叉树, 有两个操作, 1操作,u 到v 上每条边的权值 +w; 2操作,计算u 到v 上的最短路径下的权值;思路:无论是更新还是求值都能看到是对于经过LCA的, 所以对于每个点只需要val[ v ] = weight[ Father[v] - v ]就够了。 无论更新还是查询每次两个节点往上更新就好了,直到遇到LCA。 点最大1e18,层数<5

2017-07-13 09:59:36 521

原创 CodeForces 828C【构造】

题意:给你N个串,然后给出每个串在所求串的起始位置,让你求这个串,并且保证字典序最小。思路:读完题发现!怎么那么简单??? 我想的就是对每个位置记录以该位置为起点的最长串,记录输入ID和长度。 然后队友说你串怎么存啊? String啊??? 会超时么??? 不知道… 然后具体写的时候,发现在构造的时候,比如(以该位置为起点的最长串的长度): 46 代表第0位置起始是4长度,到了

2017-07-13 09:29:30 377

原创 POJ3349【手写Hash】

基础题。 利用邻接表,价值hash值为数组head[]的下标,然后在该链下寻找。//#include <bits/stdc++.h>#include<iostream>#include<cstdio>#include<cstring>#include<string.h>#include<queue>#include<cmath>#include<algorithm>using na

2017-07-08 01:51:28 612

原创 求<=N的平方数

考试的最后一题。。又是数学题。。。(又是宛如智障) x2+y2=z2x^2 + y^2 = z^2 可以有: x=a2−b2 x = a^2 - b^2 y=2ab y = 2ab z=a2+b2 z = a^2 + b^2 然后直接预处理 = = 、 哎!;#include <bits/stdc++.h>using namespace std;typedef pair<int,i

2017-07-08 00:53:30 602

原创 UVA6284【状态前缀异或+hash】

题意: 给一个字符串,问有多少个区间能构成回文串。 构成要求只要满足存在所有种类字符数量相等,或者只存在一种的个数是奇数。 思路: 由于字符比较少,考虑 2522^{52} 状压,long long 还是吃的消的。 然后一直加入状态, 先检查这个状态是否满足。我们可以看到对于状态(单纯考虑4位): 1 1 1 0 如何从他割掉一些状态达到满足,可以看到有1 0 0 0这个是吧,

2017-07-06 02:17:21 502

原创 HDU4585【树状数组/STL】

题意: 有n+1个僧侣,然后1号已经在塔里了,能力值是1e9,现在依次给你两个数, 第一个代表标号,第二个代表能力值,每次挑一个在塔里的能力最接近的跟她打,如果能力相同的取小,然后把它扔进塔里 每次输出两个标号,一个旧的,一个新的。思路: 当时就感觉很水,所以做着做着就… 变成了,离散化能力值,然后利用树状数组维护,然后二分查找值的最近点…【确实麻烦了】 ++: 1. 前缀和寻找比 x

2017-07-05 09:52:10 437

转载 POJ2887【块状链表】

参考自: http://www.cnblogs.com/d-e-v-i-l/p/5721288.html 块状链表的应用:字符串最长 Max_length=import_string_length+option_time;Max\_length = import\_string\_length + option\_time; (输入字符串长度 + 操作数) 分成 (Max_Length)−−−

2017-07-02 20:07:13 487

原创 SPOJ3267【莫队算法/】

题意: 求区间不同数的个数。 思路: 离线处理(莫队/分块)#include <bits/stdc++.h>using namespace std;typedef long long LL;typedef pair<LL,LL>PII;const int N=2e5+10;int n,q;int a[N];int tim[N];struct asd{ int Left,Ri

2017-07-02 16:58:03 438

原创 CodeForces820B【set.lower_bound】

… 水题 强行用一下 iterator set::lower_bound(val): 返回第一个关键字的值是大于等于给定值的定位器。 细节处理越界: end()题意: n变形,求三个点组成角,最接近角的三点。 思路: 正n边形每个内角的度数公式: (n-2)*180/n 正n边形最小角的度数公式:(n-2)*180/n/(1+n-3)=180/n当n>180时,有

2017-07-02 11:06:07 462

转载 CodeForces301D 【BIT】

转自:http://www.cnblogs.com/oyking/archive/2013/08/14/3256922.html 题意: 给你n个数,求区间有多少对除数和被除数的对数思路: 线段树 区间和/ 树状数组 前缀和 2e5的数的除数最多才81个 对于一个数的贡献,我最好是区间的贡献,也就是1-n的贡献。Sum[pos]: 1到POS的对数。 对于区间[L,R],如果简单考虑 S

2017-07-01 23:18:21 357

空空如也

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

TA关注的人

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