- 博客(133)
- 收藏
- 关注
原创 windows程序设计-第七章 BLOKOUT1 备注
仅供参考,如有budu#include LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM) ;int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow){ static TCHAR szAppName
2014-08-05 20:49:05 960 1
原创 SetROP2 (hdc, R2_NOT) 函数功能测试
函数SetROP2#include LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM) ;int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow){ static TCHAR szA
2014-08-05 20:38:43 2803
原创 SetWindowOrgEx() 与 SetViewOrgEx () 函数的测试
#include LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM) ;int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow){ static TCHAR szAppName[] = TEXT ("窗
2014-07-29 22:23:51 990
原创 hdu3555 数位dp入门题
hdu3555给出T个N,对每一个N求1~N中有多少个数含49 (如 49,449,12349,2491等)参考#include#include#include#includeusing namespace std;__int64 N,dp[33][3],sum;int bit[33];int main(){ int i,j,T,len; m
2013-05-09 13:31:22 1567
原创 poj3107 树的重心 非stl实现
poj3107求树的重心,全部输出(poj1655 输出序号最小的节点,数据规模小一点,使用stl)#include#include#include#includeusing namespace std;int N;int v[50010*2],next[50010*2],head[50010],E;int vis[50010];int num[50010],dp[5
2013-05-06 20:38:11 1684
原创 poj1741Tree 树的分治 树形dp 男人八题....
poj1741Tree没有思路的话就看看漆子超的论文//重心 距离 排序 统计 //http://www.2cto.com/kf/201208/149839.html#comment_iframe#include#include#include#include#include#includeusing namespace std;#define MAX
2013-04-26 20:03:20 1634
原创 poj1655Balancing Act 树的重心,树形dp
poj1655第一次dfs求出每个子树的节点数第二次dfs求答案这一题是poj1741的基础(1741代码)poj3107也是相同的意思 不过所有点都要输出,并且无法使用stl(数据规模较大)题解#include#include#include#includeusing namespace std;int N;vectorson[20010]; //图
2013-04-23 12:35:14 1203
原创 hdu2196Computer 经典树形dp 在树上求最长距离
hdu2196题解两次搜索的方法#include#include#include#includeusing namespace std;int N,V[10100]; vectorson[10100]; //图 int MAX[10100],MAXN[10100]; //最大值及其标号 int SMAX[10100],SMAXN[10100];
2013-04-18 21:24:39 1384
原创 hdu1520 Anniversary party 树形dp
hdu1520比之前树形背包要简单多了,没有背包的体积限制dp[ i ] [ 0 ] 以i为根(不包括i本身)的树上取到的最大值dp[ i ] [ 1 ] 以i为根(包括i本身)的树上取到的最大值#include#include#include#includeusing namespace std;int N,V[6100];vectorso
2013-04-18 14:32:15 922
原创 POJ1947 树形dp 重做
poj1947噩梦。。。#include#include#include#includeusing namespace std;int N,P;vectorson[160];int vis[160],dp[160][160],Start;int dfs(int n){//printf("~%d\n",n); int sum=1,len=son[
2013-04-16 20:28:11 1110 1
原创 hdu1011Starship Troopers 树形DP
hdu1011有很多细节需要理解http://tobyaa.blog.163.com/blog/static/3024859120128260453244/一棵树,有n个结点,每个结点有v个bug,有w的brain。我从1号结点开始走,带着m个战士。 1个战士可以消灭20个bugs,如果我把某个结点的所有bug都消灭了我就能得到那个结点的brain。如果想攻击当前结点,
2013-04-15 21:52:51 940 1
原创 poj1155TELE - 树形dp
poj1155这题和上一题一样的思路,不过背包的体积有不同,每次都要计算#include#include#include#includeusing namespace std;int N,M,v[3010];vectorson[3010]; //记录儿子节点 vectorcost[3010]; //记录花费 int dp[3010][3010];int
2013-04-15 11:14:31 877
原创 hdu1561树形DP入门
hdu1561The More,The Better推荐题解dp[ i ] [ j ] 以节点i为跟,取j个(包括i,即dp[i][1]=V[i])所能得到的最大值#include#include#include#includeusing namespace std;int N,M,v[223];vectorson[223];int dp[223][223]
2013-04-14 13:44:33 2981
原创 hdu3535 01&分组背包
hdu3535稍微能理解一些了,至少取一个的分组背包。http://www.cnblogs.com/wuyiqi/archive/2011/11/19/2255208.html写hdu3033的那题 网上没有解释好一点的题解 ,这题题解比较多#include#include#includeusing namespace std;int N,T,M,
2013-04-11 20:48:33 1211
原创 hdu3033 分组背包变形(至少去1个)
hdu3033受不了了#include#include#includeusing namespace std;int N,M,K,a,b,c;struct NODE{ int num; int w[110],v[110];} n[11];int dp[11][11000];int main(){ int i,j,k; while(scanf("%d
2013-04-10 21:10:45 803 1
原创 zoj3690Choosing number 矩阵dp
zoj3690(Small)S[ i ] 前i个数字排列的方案数 (最后一位小于等于K)(Big) B[ i ] 前i个数字排列的方案数 (最后一个数字大于K)递推公式 :S[ i ] = S[ i-1 ]*(K-1) + B[ i-1 ]*KB[ i ] = S[ i-1 ]*(M-K) + B[ i-1 ]*(M-K)最
2013-04-01 19:18:22 1084
原创 poj2689Prime Distance 素数筛选
poj2689Prime Distance题目要求:在给定范围L~R中找出差值最大和最小的两组素数要在L~R筛选素数 ,直接算出1~2,147,483,647的话肯定超时但实际上,筛选1~2,147,483,647中的素数需要的因子并不多,只要找出2~sqrt(2,147,483,647)中的素数就够了,筛选法就是这么干的之后用这些素数对L~R的
2013-04-01 13:54:38 830 1
转载 ACM 推荐blog汇总及OJ
ACM-ICPC世界网站http://acm.timus.ruhttp://acm.sgu.ruhttp://acm.hnu.cnhttp://acm.hdu.edu.cnhttp://acm.pku.edu.cnhttp://acm.zju.edu.cnhttp://acm.jlu.edu.cnhttp://acm.hnu.edu.cnhttp://acm.h
2013-03-28 17:59:11 2961 1
原创 zoj2156Charlie's Change 多重背包可行性问题+记录路径
zoj2156用一个结构体pre数组来记录前一步的信息#include#include#includeusing namespace std;int C,n[30],v[5]={ 0,1,5,10,25};int dp[15000];struct PRE{ int ID,NUM,P;} pre[15000];int main(){ int i,j,k
2013-03-26 19:42:58 1224
原创 POJ1661Help Jimmy _dp
pooj1661将题目模型想象成水流的下落:遇到木板后分成两股水流继续向下,问什么时候能到达地面(假设地面是最后一个木板)dp[i][0] 水流到达第i个木板左端点的最早时间 dp[i][1] 右端点//poj1661#include#include#include#includeusing namespace std;int dp[1100][2
2013-03-21 14:53:56 911
原创 hdu1269 Tarjan强连通分量 模板
hdu1269资料师兄给的模板/*2012-12-06 20:16:08 Accepted 1269 46MS 1484K 1339 B C++*/#include #include #include using namespace std;#define maxn 10010int n;vector g[maxn];int Bcnt;
2012-12-06 21:59:38 3986 1
原创 hdu2586 LCA模板
hdu2586先预处理然后是 在线询问 (也就是一边读入一边查询)#pragma comment(linker, "/STACK:1024000000,1024000000")#include #include #include using namespace std;#define maxn 400010int n;struct Nod
2012-12-06 17:27:26 4576 1
原创 hdu1059Dividing 多重背包二进制优化
hdu1059#include#include#includeusing namespace std;int dp[440000],sum,n[7];int main(){ int i,j,k,left,T=1; while(scanf("%d%d%d%d%d%d",&n[1],&n[2],&n[3],&n[4],&n[5],&n[6])) { sum
2012-12-03 21:57:46 1268
原创 hdu1864 最大报销额
hdu1864题解 友情链接~同一个方法做的#include#includeusing namespace std;int N;double V,dp[40],p[40],MAX,sum[40];bool flag[40];void dfs(double x,int k){ if(x>V) return ; if(x>MAX) MAX=x;
2012-12-03 20:28:39 1744
原创 hdu2586 How far away? LCA
hdu2586#include#include#include#includeusing namespace std;#define MAX 40000struct edge{ int v,w;};vector mp[MAX];vector query[MAX];bool flag[MAX];int pre[MAX],father[MAX],path[MAX]
2012-12-03 11:35:42 1860
原创 hdu1558并查集+线段相交
hdu1558关于线段相交的内容参考算法导论P577#include#include#includeusing namespace std;int pre[1010],sum[1010];struct point{ double x,y;};struct EDGE{ point a,b;} edge[1010];int E;//边数 int Fi
2012-12-03 11:33:44 1473
原创 hdu3037Saving Beans lucas定理
hdu3037lucas 对组合数取模lucas(n,m)=C(n%mod,m%mod)*lucas(n/mod,m/mod)%mod;lucas(n,0)=1;#include#includeusing namespace std;__int64 jc[100010];__int64 exgcd(__int64 a,__int64 b,__int64
2012-12-02 17:23:28 1092
原创 fzu2020 组合,逆元
fzu2020对组合数求模 需要用到逆元#include#include#include#includeusing namespace std;__int64 Ext_gcd(__int64 a,__int64 b,__int64 &x,__int64 &y){ if(b==0) { x=1, y=0; return a; } __int64 r
2012-12-02 15:39:52 1183
原创 fzu2015vote 组合 逆元
fzu2015http://fayaa.com/code/view/27362/raw/#include#includeusing namespace std;__int64 jc[210],mod=1000000007;__int64 exgcd(__int64 a,__int64 b,__int64 &x,__int64 &y){ if(b==0) return
2012-12-02 15:37:24 793
原创 数论笔记
欧几里德算法概述: 欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。其计算原理依赖于下面的定理: gcd函数就是用来求(a,b)的最大公约数的。 gcd函数的基本性质: gcd(a,b)=gcd(b,a)=gcd(-a,b)=gcd(|a|,|b|)欧几里得算法的公式表述 gcd(a,b)=gcd(b,a mod b) 证明:a可以表示成a = kb + r
2012-11-30 17:57:37 1863
原创 hdu4135 互斥+容斥原理
hdu4135网上学到到的递归写法#include#include#includeusing namespace std;int fac[20];void Init(int m){ int i,n=0; for(i=2;i*i<=m;i++) if(m%i==0){ fac[++n]=i; while
2012-11-29 16:31:40 1929
原创 hdu2841 筛选素因子 容斥定理
hdu2841#include#include#define max 100001int Prim[max],num[max][20];void init(){ int i,j; memset(Prim,0,sizeof(Prim)); for(i=1; i<=100000; i++) num[i][0]=0; for(i=2; i<=100000; i+
2012-11-28 19:30:46 1156
原创 pku1659Frogs' Neighborhood 可图定理
pku1659n个点的度从大到小排序从中出去第一个点 并抹去边 (类似拓扑排序)序列中的所有数都为0 或 出现负数#include#include#include#includeusing namespace std;struct point{ int n,num;}P[11];bool cmp(point a,point b){ return a.num>b
2012-11-27 16:49:47 746
原创 hdu2209 翻纸牌游戏-位运算bfs
hdu2209#include#include#include#includeusing namespace std;bool vis[1<<20];int path[1<<20],len;queueQ;int bfs(int x){ int X; if(!x) return 0; while(!Q.empty()) Q.pop(); Q.push(x);
2012-11-23 20:25:26 1047
原创 hdu1426 数独killer
hdu1426题目上说有唯一解...按照他说的用唯一解来写 超时啊//运行代码后面的样例时//最后18个空位产生死循环 #include#include#includeusing namespace std;int mp[10][10],T[10]={0,1,1,1,2,2,2,3,3,3};int N; //N个空需要填struct point{
2012-11-23 20:11:13 1062
转载 图论
最短路问题此类问题类型不多,变形较少POJ 2449 Remmarguts' Date(中等)http://acm.pku.edu.cn/JudgeOnline/problem?id=2449题意:经典问题:K短路解法:dijkstra+A*(rec),方法很多相关:http://acm.pku.edu.cn/JudgeOnline/showcontest?cont
2012-11-18 22:07:39 1026
原创 师兄的题集
dp 概率 期望poj 2096 zoj 3329 zoj 3551 zoj 3582 zoj 3640 poj 3071 poj 3756 hdu 4035hdu 4050 CF24 D2satpoj 2723 已做poj 3207 已做poj 3648 已做poj 3
2012-11-18 19:13:07 1452
原创 URAL 1229贴地砖 . 二分图匹配
铺地砖的时候要铺两层才能牢固??给出了第一层现在让铺第二层 第二层的地砖要跟第一层的完全错开 。这是题意用黑格子去跟白格子二分匹配匹配成功就连一条线( X[i][j]=i Y[i][j]=j ) 完成后 再根据给每个白格子和它的前导 赋值 输出#include#include#includeusing namespace s
2012-11-18 14:01:45 1500 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人