自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 收藏
  • 关注

原创 二分图的多重最大匹配——网络流

hihoCoder1393秋季运动会HDU3605 Escape

2017-08-18 13:30:41 1457

原创 POJ2287 Tian Ji——The Horse Racing

POJ2287 田忌赛马

2017-08-17 18:11:14 389

原创 网络流Dinic算法

#include <iostream>#include <cstdlib>#include <cstdio>#include <cstring>#include <string>#include <algorithm>#include <queue>using namespace std;const int MAXN = 210;const int MAXM = 210*210;c

2017-08-16 15:48:44 343

原创 SPFA算法模板

SPFA求边权为负的最短路

2017-08-16 10:36:40 347

原创 HDU 1159 Common Subsequence

最大公共子序列

2017-08-07 19:59:23 256

原创 Codeforces 768B Code For 1 (简化版线段树)

#include<iostream>using namespace std;typedef long long ll;ll query(ll n,ll L, ll R ,ll l, ll r){ if(R<l||L>r||n==0) return 0; if(n==1)return 1; ll mid = (l+r)>>1; return qu

2017-08-07 19:43:49 333

原创 ST表模板(维护区间最大值)

ST表维护区间最大最小值

2017-08-07 19:42:10 574

原创 三分搜索 模板

三分搜索写法

2017-08-07 19:37:22 335

原创 Codeforces 578C Weakness and Poorness

题目描述:给出一个数列,找出一个数x,使这个数列中每一个元素都减去x值所得的绝对值的和最小。 题目分析:当x非常大时,最终的答案值也会很大;当x为0时,一定可以找出一个大于0的值使每个元素减去它的答案值变小,因此这是一个三分题目。#include <cmath>#include <cstdio>#include <cstdlib>#include <cstring>#include <io

2017-08-07 19:36:32 312

原创 Gym 101194D Ice Cream Tower (双指针扫描)

这道题的重要方法之一是双指针扫描,它的时间复杂度只有O(N)/*双指针扫描*/#include<iostream>#include<algorithm>using namespace std;typedef long long ll;const int maxn = 300005;ll a[maxn],b[maxn];int t,T,n,k;bool judge(int x){

2017-08-07 19:30:13 435

原创 Codeforces 9C Hexadecimal‘s number (DFS)

给出一个数,判断不大于它的数中有多少个只由0,1组成// 这种方法针对只给出一个数据非常容易,仅仅是单纯的DFS#include<iostream>#include<stdio.h>#include<map>using namespace std;long long int ans = 0;map<int ,int >vis;int n;void DFS(int x){

2017-08-07 19:27:14 280

原创 POJ 1011 Sticks

用当前的木棍拼木棒,问能拼成x(x>=1)根等长木棒的最小长度是多少 首先考虑由最大的木棒开始拼,边界条件为所有木棍拼接成一根木棒,因此答案就在max~sum之间枚举。注意一个需要满足的性质是,木棒的总长度sum%当前长度len==0,因为要拼成整数个等长木棒,进行搜索即可#include<iostream>#include<algorithm>#include<cstring>using

2017-08-07 19:12:25 202

原创 HDU 4771 Stealing Harry Potter's Precious

旅行商问题,状压dp 用一个二进制数表示是否走过当前的几个位置#include <stdio.h>#include <string.h>#include <iostream>#include <algorithm>#include <string>#include <math.h>#include <stdlib.h>using namespace std;int n,m;ch

2017-08-07 19:06:34 241

原创 博弈论(阶梯博弈)POJ 1704

阶梯博弈:博弈在一列阶梯上进行,每个阶梯上放着自然数个点。两个人进行阶梯博弈,每一步则是将一个集体上的若干个点( >=1 )移到前面去,最后没有点可以移动的人输

2017-08-05 23:21:23 422

原创 博弈论(斐波那契博弈)

斐波那契博弈:有一堆物品,两人轮流取物品,先手最少取一个,至多无上限,但不能把物品取完,之后每次取的物品数不能超过上一次取的物品数的二倍且至少为一件,取走最后一件物品的人获胜。

2017-08-05 23:12:39 993

原创 博弈论(尼姆博弈)

尼姆博弈:有任意堆物品,每堆物品的个数是任意的,双方轮流从中取物品,每一次只能从一堆物品中取部分或全部物品,最少取一件,取到最后一件物品的人获胜。

2017-08-05 23:11:12 724

原创 博弈论模型(威佐夫博弈)

威佐夫博弈:有两堆各若干的物品,两人轮流从其中一堆取至少一件物品,至多不限,或从两堆中同时取相同件物品,规定最后取完者胜利。

2017-08-05 23:04:27 901

原创 博弈论模型(巴什博弈)

巴什博奕:只有一堆n个物品,两个人轮流从中取物,规定每次最少取一个,最多取m个,最后取光者为胜。

2017-08-05 22:51:29 1020

原创 POJ 3922 A simple stone game(K倍减法游戏)

两人取一堆石子,石子有n个。 先手第一次不能全部取完但是至少取一个。之后每人取的个数不能超过另一个人上一次取的数的K倍。拿到最后一颗石子的赢。先手是否有必胜策略?若有,先手第一步最少取几个?

2017-08-05 22:40:49 392

原创 POJ 3692 Kindergarten

bool find(int x){ int i,j; for (j=1;j<=m;j++){ //扫描每个被匹配的物体 if (line[x][j]==true && used[j]==false) //如果有联系并且还没有标记过(这里标记的意思是这次查找曾试图改变过该物体的归属问题,但是没有成功,所以就不用瞎费工夫了)

2017-08-05 02:27:31 239

原创 匈牙利算法模板 二分图最大匹配

二分图的最大匹配

2017-08-05 02:20:28 288

原创 POJ 2349 Arctic Network

Arctic Network #include<stdio.h>#include<math.h>#include<algorithm>using namespace std;int father[550], m, k;double d[550];struct post{ double x, y;}p[550];struct edge{ int u, v;

2017-08-05 01:05:43 212

原创 POJ 3552

#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int VM=110;const int INF=999999999;struct Edge{ int u,v; int cap;}edge[VM*VM];int n,m,ans,fa

2017-08-05 01:04:18 257

原创 HDU 1569 find the safest road

这道题用Floyd和dijkstra均可以解出。 将各条路径的成绩值维护一下即可,也可以对各条路上的权值取对数,这样所有的路都变成了负值。找乘积的最大值,也就是找负值的最大值即可,贴出第一种方法的AC代码:#include<iostream>#include<stdio.h>using namespace std;double safe[1010][1010];//double map[1

2017-08-04 23:24:37 229

原创 快速幂模板

快速幂问题:ll quick_pow(ll a,ll b,ll m){ ll ans=1; while(b) { if(b&1){ ans=ans*a%m; } b=b>>1; a=a*a%m; } return ans;}

2017-08-04 23:09:57 206

转载 邻接表模板存储稀疏图的边

邻接表#include<stdio.h>#include<string.h>int head[100100];//表头,head[i]代表起点是i的边的编号 int cnt;//代表边的编号 struct s{ int u;//记录边的起点 int v;//记录边的终点 int w;//记录边的权值 int next;//指向上一条边的编号 }edg

2017-08-04 23:08:40 393

转载 Dijkstra模板求单源点最短路径

Dijkstra求单源点最短路径

2017-08-04 23:06:36 348

转载 Kruskal模板求最小生成树

Kruskal算法求MST

2017-08-04 23:05:04 309

原创 Trie树(2)

Trie树POJ Shortest Prefixes HDU What Are You Talking About北大ACM Babefish

2017-05-23 10:19:45 343

原创 Trie树

Trie树 HDU1251

2017-05-10 01:14:26 240

原创 最小生成树//poj Jungle Road

最小生成树与最短路径的区别;普里姆算法

2017-05-07 03:09:36 341

原创 Codeforces Round #411(A. Fake NP; B. 3-palindrome; C. Find Amir; D.Minimum number of steps)

A. Fake NP 题解:给定一个闭区间的两个端点,试判断在此区间内所有数字的非1公因子出现最多的数字。如果有多个,给出其中一个就可以了。这道题比较讨巧的方法试直接输出2。 B. 3-palindrome 题解:题目要求用由‘a’,‘b’‘c’三个字母组成给定长度的字符串,其中不能包含长度超过三的子回文串,同时要保证‘c’的使用尽可能少。 本题只需要根据给定长度是否为3的倍数就可以分情

2017-05-05 01:47:32 683

原创 printf格式化输出整数

printf的用法

2017-03-12 10:34:19 2228

原创 扩展欧几里得算法

扩展欧几里得算法

2017-03-10 22:04:50 507

原创 The sum problem——关于连续子数列的求和问题

The sum problem

2017-02-10 10:20:26 757

原创 格式化输入输出处理16进制的问题

16进制A+B

2017-02-09 23:31:28 2034

原创 匈牙利算法

这是一个持续更新的博客,会随着我学习匈牙利算法的不断深入而扩充内容。 图论:二分图

2017-02-09 23:14:20 302

原创 错排和printf输出%

错排和printf输出%

2017-02-07 09:51:11 373

原创 VJ水题堆:hdu 2045 不容易系列之(3)―― LELE的RPG难题

动态规划和深度搜索的权衡

2017-02-06 16:41:39 457

原创 VJ水题——今年暑假不AC(简单贪心)

本题是贪心算法,还算比较简单啦。思路是:先找结束时间最早的一个电视节目。因为假使节目的结束时间变晚,就有可能会阻挡住下一个节目的开始时间,那样的话最后收看的电视节目数不会再多,也就是结果不会变得更好。 也就是说,我只需要对n个电视节目的结束时间进行递增排序。如果结束时间相同,因为我需要对n个电视节目都进行判断,在这时我需要让节目的开始事件递增排序。 能够做到这一条件的有sort函数。今天好不容易

2017-02-06 11:53:12 325

空空如也

空空如也

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

TA关注的人

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