自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 第一天

完成了用户表(sys_user)及相关表的设计。sys_user:( id  int, password  varchar, name  varchar,  sex  int, phone  varchar, address  varchar,   type  int, email  varchar, dormitory  int, number  int, profession

2017-02-26 22:54:17 224

转载 解决Andriod软键盘出现把原来的布局给顶上去的方法(转)

原文:解决Andriod软键盘出现把原来的布局给顶上去的方法(转)链接:http://blog.sina.com.cn/s/blog_9564cb6e0101g2eb.html决方法,在mainfest.xml中,对那个Activity加:Android:windowSoftInputMode="adjustPan|stateHidden">

2016-09-01 12:04:40 193

原创 acdream 1007 a+b 快速幂取模

给出k和n个ai,计算∑ai^k mod 10000000007的值。#include <iostream>#include <cstdio>#define MOD 10000000007#define ll long long//模乘法,本质就是用位运算和加法实现除法//可以防止做乘法时越界ll mul(ll a,ll b){ ll ans = 0; while(b)

2016-08-20 01:46:33 431

原创 POJ 2288 Islands and Bridges 状态压缩DP

题意:给出n个岛和它们之间联通的m条路径,给出权值的计算方法,求权值最大哈密顿回路的权值和数量。 n<=13. 权值的计算方法为: 1.经过的所有点的权值之和; 2.经过的连续的两个点的权值的乘积; 3.能够组成三角形的三个点的权值的乘积。 根据岛是否走过最多有(1<<13)种状态。 dp[s][i][j] = max{ dp[s][i][j] , dp[s’][j][k] + tmp

2015-11-09 16:02:13 263

原创 ZOj 3471 Most Powerful 状态压缩DP

题意:N个具有能量的原子之间可以互相碰撞,碰撞之后会有一个原子消失并且放出一定的能量。给出原子i和原子j碰撞后原子j消失时释放的能量,求能够获得的能量之和最大为多少。 N<=10. 用0表示存在,1表示消失,则共有1<#include <iostream>#include <cmath>#include <algorithm>#include <cstring>using namespa

2015-11-07 14:46:05 264

原创 病毒侵袭(ac自动机模板)

#include <iostream>#include <cstdio>#include <cstring>#include <queue>using namespace std;const int sigma_size = 128;const int maxnode = 500005;int cnt[550],n,m,st;struct Trie{ int ch[maxno

2015-09-25 17:44:58 275

原创 hdu2222

ac自动机入门,基础模板 先看的白书,没看懂。 再找的大牛模板,虽然慢了点,好歹看懂了。#include <iostream>#include <cstdio>#include <cstring>#include <queue>using namespace std;const int sigma_size = 28;const int maxnode = 500005;struc

2015-09-25 17:43:58 235

原创 有向图的强连通分量的tarjan算法总结

tarjan算法运用深度优先搜索求得有向图的强连通分量。主要原因是同一个强连通分量中的所有节点必定在深度优先搜索树的一棵子树中。只要找到这样的子树即可。tarjan算法通过一个栈来实现这个算法。 dfn[]:记录深搜第一次搜到的时间 low[]:记录可以到达的第一次搜到时间最早的节点的dfn[]值。 每次将与当前结点相连的点v入栈(如果v不在栈中), 且更新low[u]=min(low[u]

2015-08-19 14:52:25 363

原创 UVa11624 Fire!

在刘汝佳的白书上看到这个题,广搜。需要预处理出火能到达格子的时间,然后用J到达的时间去比较,如果J比火早到,则J可以走。代码借鉴了很多。。。。#include #include #include #include #include #include #define maxN 1005#define inf 99999999using namespace std;str

2015-08-06 11:07:06 431

原创 最小费用最大流:HDU3488

需要将每个点都拆成两个点,然后根据输入的边建立二分图,再建立超源点和超汇点,再y用最小费用最大流就搞定。只要存在完美匹配就可以保证所有的点都在环上,本题其实就是求二分图的最小权匹配。还有一个KM算法可以更好地解决这类问题,抽时间去学学。#include #include #include #include #define maxN 205#define maxM 30005#d

2015-08-03 20:30:11 334

原创 最小费用最大流;HDU1533

//第一次写费用流,有些地方还是不太懂,但是思路很简单。//建立伴随网络后,每次用spfa找最短路然后增广就好了#include <iostream>#include <cstdio>#include <cstring>#include <queue>#include <cmath>#define maxN 300#define maxM 10005#define INF 0xff

2015-08-03 10:45:14 329

转载 欧拉函数

定义:    对于正整数n,φ(n)是小于或等于n的正整数中,与n互质的数的数目;                例如: φ(8) = 4, 因为1,3,5,7均和8互质。性质:  1.    若p是质数,φ(p)= p-1.               2.    若n是质数p的k次幂,φ(n)= (p-1)p^(k-1)                           因为

2015-08-01 15:50:03 256

转载 线段树学习

转载自胡浩大牛网站http://www.notonlysuccess.com/index.php/segment-tree-complete/【完全版】线段树很早前写的那篇线段树专辑至今一直是本博客阅读点击量最大的一片文章,当时觉得挺自豪的,还去pku打广告,但是现在我自己都不太好意思去看那篇文章了,觉得当时的代码风格实在是太丑了,很多线段树的初学者可能就是看着这篇文章

2015-07-30 11:47:16 271

转载 位运算

摘自百度百科含义Pascal语言C语言Java按位与a and ba & ba & b按位或a or ba | ba | b按位异或a xor ba ^ ba ^ b按位取反not a~a~a

2015-07-30 11:41:04 197

原创 POJ1459

在一个电网里,有n个结点,其中有np个发电站,nc个消费者,每个发电站能够产生p[u]的电,不会消耗电;每个消费者可以消耗c[u]的电,不会产生电;给出部分结点之间的供电线路的容量,求这个电网最多消耗多少电. 建立一个源点,一个汇点.将所有电站与源点相连,弧容量为p[u];所有消费者与汇点相连,弧容量为c[u],求最大流.include include include include includ

2015-05-27 21:06:45 392

原创 网络流学习:最大流Dinic算法总结

Dinic算法即连续最短增广路算法. 思路很清晰,代码很简单. 每次用BFS建立层次网络,如果汇点不在层次网络中,则退出算法; 得到层次网络后,利用DFS进行增广.while(BFS()) ans+=DFS(1,inf);BFS的过程中用level数组存各点的层次,相当于将层次网络储存了.bool BFS(){ queue<int> q; memset(level,

2015-05-22 15:04:47 342

原创 网络流学习:(最大流)POJ1149

题意:养猪场有M个猪圈,每个猪圈可以容纳的猪的数量没有限制.养猪场的工人没有钥匙,但是要买猪的客户有若干个猪圈的钥匙.当一个客户来买猪的时候他会把所有可以打开的猪圈打开,客户离开后工人可以将猪圈里剩余的猪分配到任意猪圈.工人预先知道客户的需求和所拥有的钥匙.问养猪场一天最多可以卖出多少头猪. 网络流的题目建图果然恶心…. 建图:建立一个源点和一个汇点,如果一个客户i首先打开一个猪圈,将i与源点相

2015-05-21 21:30:29 768

原创 网络流学习(三)POJ2112

写过一篇二,被吃了,不想在写了. POJ2112,用Floyd+二分+最大流.我的最大流算法用的是Dinic算法,但是不知道为什么写出来就TLE了,..,..,.. 后来发现被书上的代码误导了,书上把层次网络都全部求出来了,其实是没必要的,只要用一个数组对每个点的层次标记就好了. 附上Dinic算法的思路: Dinic算法的思路也是分阶段地在层次网络中增广.它与最短增广路算法的不同之处是最短

2015-05-21 20:18:48 576

原创 网络流学习(一)基本概念

容量网络:设G(V,E),是一个有向网络,在V中指定了一个顶点,称为源点(记为Vs),以及另一个顶点,称为汇点(记为Vt);对于每一条弧属于E,对应有一个权值c(u,v)>0,称为弧的容量.通常吧这样的有向网络G称为容量网络.弧的流量:通过容量网络G中每条弧,上的实际流量(简称流量),记为f(u,v);网络流:所有弧上流量的集合f={f(u,v)},称为该容量网络的一个网络流.可行流:

2015-05-18 19:20:34 1118

原创 POJ2250

最长公共子序列,用map对输入的字符串进行处理之后就只是一个LCS了.最后通过递归求出路径就搞定了.#include #include #include #include #include #define MAXN 105using namespace std;int a[MAXN],b[MAXN];int tem[MAXN];int dp[MAXN][MAXN];int

2015-05-14 20:58:54 509

原创 POJ1753

这个题最好用BFS写,快.但是BFS被我写残了,最后看了题解,用DFS把这个题AC了.在用DFS好理解,用BFS需要二进制压缩,我还不是很明白,具体有关这个题的可以去这两个看看 http://blog.csdn.net/hackbuteer1/article/details/7392245 http://blog.csdn.net/lyy289065406/article/details/664

2015-05-13 20:56:17 413

原创 POj1458

最长公共子序列,我居然没看出来.以前遇到过,只是都交给队友啦,卡了一上午……….. dp[i][j]表示s1串从1到i,与s2串从1到j,这段里面的最长公共子序列为多少.\ dp[i][j]= dp[i-1][j-1] + 1, s1[i] == s2[j]; max { dp[i-1][j] , dp[i][j-1] } , s1[i]

2015-05-08 15:15:44 241

原创 POJ1953

对于一种不能出现连续的1的0-1串,长度为n时,有多少种可能的情况. 记录长度为i的时候,以1结尾的符合要求的串的数量num[i], 则dp[i]=num[i-1]+(dp[i-1]-num[i-1])*2; num[i]=dp[i-1]-num[i-1];#include <iostream>#include <cstring>using namespace std;int dp

2015-05-07 21:13:18 660

原创 POJ2081

水,按题意打表就好了,注意vis[]数组要开大点 就好了.#include <iostream>#include <cmath>#include <cstring>#define MAXN 500005#define LL long longusing namespace std;LL sq[MAXN];LL vis[MAXN*10];void init(){ LL i;

2015-05-07 20:26:12 390

原创 POj1915

BFS裸题,用数组把8个方向存起来,然后直接BFS吧.(第一次写BFS,居然这么顺…)#include <iostream>#include <cstdio>#include <cstring>#include <queue>#define MAXN 305using namespace std;struct node{ int x,y,step;};int n;int dis[8]

2015-05-07 19:44:25 369

原创 csu_1601

并查集. 先将需要去除的边一次性去掉,再一条一条加进来.#include <iostream>#include <cstring>#include <cstdio>using namespace std;#define MAXN 100005*2#define inf 1000000int head[MAXN],parent[MAXN],ad;struct node{ int

2015-05-06 21:03:35 267

原创 csu_1600

爆搜,但是不会…… dfs(num[],n)表示在一个长度为n的数组里任选两个数分别做加减乘除操作,当n等于1的时候判断num[0]是否为24.#include <iostream>#include <cmath>#include <cstring>using namespace std;double num[10];bool dfs(double num[],int n){ if

2015-05-06 21:01:40 230

原创 POJ1579

水题,没看到半点dp的影子.强行算是DP的话,公式已经给出来了,直接写就行了.#include <iostream>#include <cstring>#include <cstdio>using namespace std;int dp[25][25][25];int main(){ int i,j,k; memset(dp,0,sizeof(dp)); for(i

2015-05-05 20:12:30 326

原创 POJ1014 多重背包

今天开始DP了,第一道多重背包,模板题,还是想了很久,太弱了…….. 题意:一行给出6个数,表示从1到6,6个不同权值的个数.求能否将所有权值不分割的分成权值相等的两份. 首先总权值为奇数的肯定不符合要求,接下来就是一个多重背包了. 多重背包的二进制拆分我的理解大概是; 首先将一个数按二进制拆分之后可以用拆分后的数相加得到小于或等于这个数的任意一个数.拆分之后得到许多小堆,接下来就只需要以堆

2015-05-04 21:04:06 369

空空如也

空空如也

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

TA关注的人

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