自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

acraz的专栏

万事开头难!!

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

原创 asdf

CheckSample(sampleBytes: array of bytes) : true / falsecheckSum = 0for i = 0 to 11 checksum = checksum + sampleBytes[i]next i/*通过and 0x7F取出来校验和*/if (checksum & 0x7F) <> (sampleBytes[12] & 0x7F)

2017-06-12 10:11:08 306

原创 Python爬虫之模拟登陆知乎

在chrome浏览器下抓取登陆过程的包(注意把Preserve log勾上):表单的结构主要包括_xsrf, password, phone_num我们要找到_xsrf的值,重新载入zhihu.com之后我们可以发现Response里面有_xsrf我们就可以把_xsrf的值读取出来然后set一下cookies,就可以模拟登陆知乎了。import reques

2017-02-28 23:51:22 637

原创 MySQL最新版5.7.12安装教程(windows)

一、从官网下载ZIP Archive文件网址:http://dev.mysql.com/downloads/mysql/二、解压把下载好的压缩包解压到你想要安装的地方三、配置ini文件打开解压好的文件,里面有个my-default.ini文件。我们现在要新建一个my,ini文件,然后新建的文件内容至少包括但不限于一下内容:[mysql]# 设置mysql客户端默

2016-05-09 11:21:54 4589 3

原创 POJ 2718 Smallest Difference(DFS)

不知道有啥简单方法,,,傻逼式暴力出来的。#pragma warning(disable:4996)#include #include #include #include #include #include using namespace std;int num[10], a[10], b[10], cnt1, cnt2;vectorx, y;bool vis[10];

2015-10-15 17:38:02 448

原创 POJ 3292 Semi-prime H-numbers(筛法变形)

我只能说这个水筛法写了我两个小时。。没有爱了。#pragma warning(disable:4996)#include #include #include #include using namespace std;const long long N = 1000001;long long H[300000];int tol;bool prime[300000];bool

2015-10-14 20:41:06 338

原创 POJ 2429 GCD &amp; LCM Inverse(大数分解)

用大数分解的模板把lcm/gcd分解了,然后就会得到十几个质因子,然后我们dfs一次找到和最小的a和b就成了。#pragma warning(disable:4996)#include#include#include#include#include#includeusing namespace std;//**********************************

2015-10-14 16:48:15 474

转载 大素数判断和素因子分解模板(miller-rabin,Pollard_rho算法)

转自kuangbin的模板。#include#include#include#include#include#includeusing namespace std;//****************************************************************// Miller_Rabin 算法进行素数测试//速度快,而且可以判断 <2

2015-10-14 16:21:07 457

原创 CF 一个不知道题号的题。。 B. ShortestPath Query

B. ShortestPath Querytime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputDe Prezer loves troyic paths.Consider

2015-09-21 22:16:10 444

原创 POJ 1159 Palindrome(区间dp)

dp[i][j]表示s[i,...,j]至少添加几个字符变成回文,转移方程为if (s[i] == s[j]) { dp[i][j] = dp[i + 1][j - 1]; } else { dp[i][j] = min(dp[i + 1][j], dp[i][j - 1]) + 1; }注意一下i和j的更新顺序就好了。然后MLE了一下,改为滚动数组就AC了。#pra

2015-09-21 16:18:01 319

原创 Aizu 2249 Road Construction(SPFA算法变形,好题)

另外开一个need数组记录一下需要的花费就好了,更新最短路的时候要分开:一种是更新最短路和花费,另一种是只更新花费。#pragma warning(disable:4996)#include #include #include #include using namespace std;const int N = 10005;const int M = N * 4;int fst

2015-09-20 09:43:57 443

原创 HDU 1541 Stars (树状数组)

根据题意我们要维护前n-1个点中按照x值排序的前缀和,那么我们就可以用树状数组来维护一个大小为32000+的数组的前缀和,然后logn的更新,logn的查询就能过了。#pragma warning(disable:4996)#include #include #include using namespace std;const int M = 32005;const int N =

2015-09-20 08:22:28 272

原创 HDU 5461 Largest Point (水)

网络赛水题,主要是对t[i]平方,和t[i]分别排序,,然后先根据b的正负判断b该与哪个数相乘,然后在给a找数乘。#pragma warning(disable:4996)#include #include #include #include #include #include using namespace std;const int N = 6000005;typedef

2015-09-19 20:08:30 294

原创 HDU 5459 Jesus Is Here(DP)

DP记录答案,更新DP的时候要用到每个cff到其字符串末尾的长度和pos,以及每个cff到其字符串开头的长度和,然后记录一下每个字符串中cff的个数cnt,和字符串长度len,然后乱搞一下就成了。#pragma warning(disable:4996)#include #include #include #include #include #include using name

2015-09-19 20:03:35 375

原创 POJ 4045 Power Station(据说是:树形dp)

题目让从一棵树上找到一个节点,使得其它所有节点到该节点的距离之和最短。若存在不只一个这样的节点,按照节点编号从小到大输出。两次dfs就好了。#pragma warning(disable:4996)#include #include #include #include #include using namespace std;typedef long long LL;con

2015-09-18 19:56:45 361

原创 POJ 2377 Bad Cowtractors(kruskal最大生成树)

题目就是求最大生成树,用kruskal算法乱搞一下就好了,要注意一下生成树不存在的时候要输出-1。。#pragma warning(disable:4996)#include #include #include using namespace std;struct edge { int from, to, cost; bool operator<(const edge &o

2015-09-16 22:01:28 292

原创 POJ 2395 Out of Hay(dijkstra变形)

题意是让求从1出发到点 u 所有路径上的最大边权的最小值。dijkstra变形一下就好了,用maxdis[i]数组来记录从1到点i的所有路径上最大边权的最小值,,那么就能像更新最短路一样更新这个题目的答案了,。还可以用kruskal算法来做,可能更简单一点。只想说POJ真坑,明明1w条边,开到1w+5就re,后来直接改成10w就ac了、#pragma warning(disable

2015-09-16 21:44:20 279

原创 POJ 3268 Silver Cow Party(dijkstra最短路)

被别人机智的转置矩阵了一下给过了。。就是正着dijkstra之后,把边反向在求一次dijkstra#pragma warning(disable:4996)#include #include #include using namespace std;int n, m, x;int mp[1005][1005];int dis[1005], dis2[1005];bool

2015-09-16 20:14:39 271

原创 POJ 3259 Wormholes(SPFA算法判断负权回路)

SPFA算法中当某个顶点进入队列次数大于等于n的时候就说明存在负权回路了。恩就是这样。。。。#pragma warning(disable:4996)#include #include #include #include #include using namespace std;const int N = 505;vectorg[N], e[N];int cnt[N],

2015-09-16 19:15:31 436

原创 POJ 1703 Find them, Catch them(经典并查集)

并查集的经典问题,我用到的是并查集的经典方法。。就是用relation数组记录与根节点的关系,例如relation[i]=1表示i跟i的根节点在同一个集合,relation[i]=0表示i跟i的根节点不在同一个集合。 然后就可以方便的查询他们之间的关系了。 主要是在find和union函数里面要对relation数组的修改,这个修改要自己在不同的题目中细心找出,,,因为找错一次wa了一次,fin

2015-09-14 22:10:38 287

原创 HDU 5433(Xiao Ming climbing)(费用最短路:BFS+优先队列)

昨天晚上比赛的时候被hack了,然后就wa到睡觉。。。wa的做法是每次只记录斗志允许情况下到达(x,y)的最短路,然后找到终点之后就是答案。错误的原因呢是因为poj上的一个费用最短路数据太水,让我给水过去了,没仔细考虑。一种特殊情况是:从源点S到一个点u,斗志k限制下的最短路为dis1,但是这个限制下不能从u到终点E。而从源点S到点u,斗志k限制下的另外一条路径为长度dis2(di

2015-09-13 21:51:20 555

原创 POJ 1836 Alignment(DP最长上升子序列)

要注意理解好题意,题目让求数组a[1,...i]最长上升子序列长度加上a[i+1,...n]最长降低子序列长度的最大值,然后n-最大值就是答案。方法就是正反用求两次最长上升子序列,然后用后缀mx[i]数组记录记录一下从a[i]开始的最长的降低子序列长度。就能O(n)的找出我们要的最大值。#pragma warning(disable:4996)#include #include #i

2015-09-12 14:38:58 471

原创 POJ 2533 Longest Ordered Subsequence(DP最长上升子序列O(n^2)&&O(nlogn))

先说一下简单的O(n^2)的算法:dp[i]表示以a[i]结尾的最长上升子序列的长度。那么我们每次求dp[i]的时候都要扫一遍所有的a[j]下面是代码#pragma warning(disable:4996)#include #include #include using namespace std;int a[1005];int dp[1005];// dp[i]表示前

2015-09-12 14:00:35 299

原创 POJ 2570 Fiber Network(Floyd+位运算)

都知道位运算对于集合的交并运算灰常简单。这道题要找到所有能从点u到点v的公司,那么我们如果有一个中间点k的话,从u到k的公司属于一个集合,从k到v的公司又属于一个集合,那么我们就会用到集合的取交集运算,所以这里我们使用的位运算。具体实现看代码。#pragma warning(disable:4996)#include #include #include using namesp

2015-09-11 11:56:41 298

原创 POJ 1797 Heavy Transportation(dijkstra算法+优先队列优化)

题目就是找出从1到n的一条路径,使得这条路径的最小边权最大。dijkstra算法的变形,状态为终点V和到该点的最小边权的最大值M。#pragma warning(disable:4996)#include #include #include #include #include using namespace std;const int N = 1005;const int

2015-09-09 23:23:20 529

原创 通过POJ 3463 Sightseeing(dijkstra)彻底理解优先队列优化的dijkstra算法

先仔细梳理一下优先队列优化的dijkstra算法思路:我们要定义一个结构体,包含终点v,和从源点到终点v的最短路径长度dstruct node { int v, d; node(){} node(int v, int d) :v(v), d(d) {} //由于优先队列的特点重载<操作符,使得d最小的排在队列的front bool operator<(const node&op)

2015-09-09 17:43:54 423

原创 POJ 1724 ROADS(费用最短路:优先队列+BFS)

题目意思很简单,就是求费用最短路,数据比较小,考虑暴力bfs。状态定义为(花费,最短路,终点)的一个三元组。优先队列按照最短路长度排序,每次从队列里取出最短路长度最短的状态,然后把跟该状态终点相邻的点加入队列。因为数据比较小,所以不用记录访问情况也能ac。#pragma warning(disable:4996)#include #include #include #inclu

2015-09-09 12:34:42 402

原创 POJ 1949 Chores(树形dp)

想来想去不知道怎么用拓扑,然后dp过了。树形dp挺简单的,就是父节点完成的时刻是该节点所有的子节点完成时刻中的最大值加上父节点完成需要的时间(注意一下时刻跟时间)。然后一次水过去了。#pragma warning(disable:4996)#include #include #include #include using namespace std;const int N =

2015-09-08 23:12:45 279

原创 POJ 1201 Intervals(差分约束系统)

我们让xi表示[0,1,...,i-1]中选出数的个数,那么对于一行输入a,b,c,我们有x(b+1)-xa>=c。特别注意一下隐含条件:0(stl太慢了。。。慢的我都T了一次)#pragma warning(disable:4996)#include #include #include using namespace std;const int N = 50005;in

2015-09-08 22:33:37 322

原创 差分约束系统

简单介绍一下差分约束系统:对于形如x1-x2x1-x3x2-x3...构成的不等式组,我们要求出其中的一组解向量(x1,x2,x3,...,xn)使得所有的不等式都成立,我们就可以用最短路算法来解出其中的一个解向量,然后给每个xi同时加上一个常数k,所有不等式仍然成立(两个数同时加上常数k,这两个数的差值不变),然后就求出了解集。注意到在最短路中d[i]表示i到源点的最

2015-09-08 22:28:58 233

原创 2015.9.2组队赛 1006题(dp:前缀和优化,空间压缩)

题目描述求有多少个数列满足a1+a2+a3+...+am=n, 0输入描述第一行是样例个数。(少于10000个样例)每一个样例第一行有n,m(1输出描述每一个样例,输出答案mod 1000000007输入24 24 3输出10思路:首先我们容易想到要想有一个数列满足条件,那么n>=(m*(m+1)/2)。所以我们只需要把m控制在sqrt(n)

2015-09-02 19:37:07 369

转载 背包九讲(好好看下还是有好多好东西的)

P01: 01背包问题 题目 有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。 基本思路 这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。 用子问题定义状态:即f[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值。则其状态转移方程便

2015-09-02 09:08:57 322

原创 HDU 1712 ACboy needs your help(泛化物品dp)

背包九讲中的泛化物品,裸模板了。#pragma warning(disable:4996)#include #include #include using namespace std;int a[105][105];int ans[105];int main(){ int n, m; while (scanf("%d %d", &n, &m)){ if (n == 0

2015-09-02 00:22:48 528

原创 hihocoder 1055 刷油漆(树形dp)

题意:有棵节点数为n的树,节点都有对应的分数,要求找到以1为根的包含m个结点的树所得分数最大。思路:dp[u][j]表示以节点u为根的大小为 j 的树可得到的最大分数,答案就是dp[1][m]。状态转移方程为:dp[u][j]=max(dp[v1][k1]+dp[v2][k2]+...+dp[vx][kx]),v是u的子节点。这里就有了泛化物品的概念(不懂的可以去看一下大牛的背包九讲)

2015-09-01 23:58:40 1179

原创 hihocoder 1044 状态压缩·一 (状态dp)

题意:n堆垃圾,任意连续的m堆中最多选q堆,求最大垃圾量。思路:dp[i][S]表示前 i 个人中,第i+1-m个人到第i个人的选取情况为S时,能获得的最大值。先说第一个比较简单的转移方程:dp[i][S],若S里1的个数大于q,则为0。否则在第i-m堆垃圾的取和不取中选较大值,再加上第i堆的取舍情况。 int cnt = cal(j);//计算出j里面1的个数 if

2015-09-01 21:32:01 710

原创 UESTCoj 265 War(Floyd最短路)

WarTime Limit: 4000/2000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others)Submit StatusYour country is now involved in a war! In the front, there are N positions be

2015-09-01 17:56:48 419

原创 UVa 816 Abbott's Revenge(状态压缩BFS)

复杂的BFS:求最短路,但是每个点能转的方向是有限制的。把一个点的状态扩展为4个状态分别表示在该点时面向哪一面.#pragma warning(disable:4996)#include #include #include #include #include #include using namespace std;struct node{ //定义状态:该题目不是每一

2015-09-01 15:11:34 436

原创 hihocoder 1224 赛车 (我只能说LCA,T了)

先说一下我用LCA的思路:输入过程中把叶子结点找出来。然后dfs找出各个点到根节点1的距离,并且记录下最长路的长度len和非根节点端点tail,而且要求出来两个端点都是叶子结点的LCA。然后答案就是len+d[i]-d[lca(i,tail)](i为其它叶子结点)中的最大值了。下面是T了的代码o(╯□╰)o#pragma warning(disable:4996)#include

2015-08-30 22:16:25 432

原创 hihocoder 1164 随机斐波那契 (期望dp)

其实最简单的暴力O(n^3)是能过的,,这里主要是提一下对于大数据时怎么处理。对于某个n来说我们要求a_n的期望,考虑一下我们求a_n的时候是随机从a_n前面的n项中抽出两项然后相加得到a_n,那么我们把所有情况分为两类:第一类是所选的两个数中有a_(n-1),第二类是所选的数中没有a_(n-1)。然后分别把两类的期望求出来相加就好了。对于第一类的期望:它就是从a_0加到a_(n-1)的和

2015-08-30 15:54:34 989 2

原创 HDU 5423 Rikka with Tree(构造)

根据题意可以构造出来的特殊树有三种情况(全是以结点1为根节点),,第一种是一条直线,第二种是一条直线末尾开花,第三种是直接开花。如图所示。然后就可以知道对于每一个深度的点数为1,1,1,...,x,0,0,...。然后dfs一遍找一下就可以了。#pragma warning(disable:4996)#include #include #include #include us

2015-08-29 21:36:23 510

原创 POJ 3258 River Hopscotch(二分)

本题是二分求最小值最大化。本题在[0,l]的区间内是满足单调性的,随着长度的递增,所需要拆除的石头数量也是递增的,这就满足了二分的条件。我们用二分找到拆除石头数量为m的最大值就OK了。#pragma warning(disable:4996)#include #include using namespace std;int a[50005];int l, n, m;int

2015-08-29 07:57:12 281

空空如也

空空如也

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

TA关注的人

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