自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

rhy

好好学习天天向上

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

原创 hdu 1429 二进制 位压缩 bfs

找大神代码学了下二进制状态压缩 用key&(1 只有十个钥匙 所以可以用状态数组第三维表示这些钥匙分别有或无的状态 用位压缩来记录不同的钥匙状态 10表示第2把钥匙的状态, 1100表示有第3把和第4把钥匙的状态,因为11101110&00100000==00100000 说明那一把钥匙在里面,若为0就不在这里面。 如果是小写字母 也就是要是 用|符号可以将二进制下的两个数相加

2013-04-13 14:14:44 599 2

原创 hdu 1536 SG函数模版题

//把可以取多少用sg函数算下 #include #include #include #include #include #include #include #include #include using namespace std; const int N=10003; int na[103]; int b,k,t; int hash[103]; int sg[N]; void getsg(in

2013-03-27 22:05:46 466

转载 hdu 1868 博弈 SG函数

SG函数真心迷糊 看了大神的 代码如下 #include #include using namespace std; int E[1001]; void check() { int H[16],Fib[16]= {1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597}; int i,j; E[0]=0; E[1

2013-03-27 18:39:16 587

原创 hdu 1421 搬寝室 dp

#include #include #include #include #include #include #include #include #include using namespace std; const int inf=0x3fffffff; int dp[2002][1005]; int a[2005]; //dp[k][i] 表示 k 对物品在前 i 个物品的最小值 //我怎么感觉

2013-03-26 15:39:06 443

原创 hdu 3199 简单dp

#include #include #include using namespace std; __int64 dp[100001]; __int64 min3(__int64 a,__int64 b,__int64 c) { a=min(a,b); a=min(a,c); return a; } int main() { __int64 a,b,c,d;

2013-03-26 14:42:58 529

原创 hdu 2189 母函数简单题

#include #include #include #include #include #include #include #include #include using namespace std; int a[155],b[155],prim[50],k; void init() { k=1; for(int i=2; i<=150; i++) { i

2013-03-26 14:02:33 477

原创 hdu 4503

#include #include #include #include #include #include #include #include #include using namespace std; int main() { //考虑反面 正面3人互相为朋友 或者互相不是朋友 //反面 只两人互相是朋友 或者 不是朋友的里面注意不要包括自己 关系是相互的最后除以2 in

2013-03-26 13:26:28 510 1

原创 hdu 1398 母函数初学

#include #include #include #include #include #include #include #include using namespace std; int main() { int a[320],b[320],i,j,k,n; while(cin>>n&&n) { for(i=0;i<=n;i++)//第一个表达式赋系数

2013-03-25 21:00:40 434

转载 hdu 1517 必胜必败态

//大神贴的一种很好的思路 贴上备忘 2)博弈(给出牛人的解题思路) 先引入必胜点和必败点两个概念:    必败点(P点) :前一个选手(Previous player)将取胜的位置称为必败点。    必胜点(N点) :下一个选手(Next player)将取胜的位置称为必胜点。 算法实现:    步骤1:将所有终结位置标记为必败点(P点);(终结位置指的是不能将游戏进行下去的

2013-03-25 19:13:53 672

原创 hdu 1716 全排列算法

例2.3 设有排列(p) =2763541, 按照字典式排序, 它的下一个排列是谁?                        (q) =2764135. (1) 2763541  [找最后一个正序35] (2) 2763541 [找3后面比3大的最后一个数] (3) 2764531 [交换3,4的位置] (4) 2764135 [把4后面的531反序排列为      135即得

2013-03-25 18:55:17 542

转载 hdu 1143 递推

http://blog.csdn.net/liwen_7/article/details/7998930

2013-03-24 18:31:48 469

转载 hdu 1098 数学归纳法 二项式定理

转载大神空间:http://blog.sina.com.cn/s/blog_5fe933490100ey6r.html 题目的关键是f(x)=5*x^13+13*x^5+k*a*x; 由于x取任何值都需要能被65整除.那么用数学归纳法.只需找到f(1)成立的a,并在假设f(x)成立的基础上, 证明f(x+1)也成立. 那么把f(x+1)展开,得到5*( ( 13 0 )x^13

2013-03-24 17:13:19 581

原创 hdu 2108 简单计算几何 判断凹凸

截图摘自大神博客 #include #include #include #include #include #include #include #include #include using namespace std; int a[1050],b[1050]; int main() { int n; while(scanf("%d",&n)!=EOF&&n) {

2013-03-24 13:54:52 507

原创 hdu 2151 简单dp

#include #include #include #include #include #include #include #include #include using namespace std; int dp[120][120]; int main() { int n,p,m,t; while(scanf("%d%d%d%d",&n,&p,&m,&t)!=EOF)

2013-03-24 13:23:36 512

转载 hdu 4515 计算年月日

我太挫了 写了3000len的代码 #include #include #include #include #include #include #include #include #include using namespace std; int main() { int n; int sum; int t; while(scanf("%d",&t)!=EOF)

2013-03-23 21:35:16 581

转载 hdu 2062 子集问题

解题思路: 首先我们来看看An一共有多少个子集。 n=1时,只有{1}一个子集合 n=2时,就有: {1}, {2}, {1, 2}, {2, 1} 4个子集合。 n=3时,有 {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 1}, {2, 3}, {3, 1}, {3, 2}, {1, 2, 3}, {1, 3, 2}, {2, 1, 3}, {2,

2013-03-23 18:49:37 496

原创 hdu 2036 计算几何求面积

#include #include #include #include #include #include #include #include #include using namespace std; int main() { int n,i,a[222],b[222]; double sum; while(scanf("%d",&n)&&n) { for(

2013-03-22 20:02:21 391

转载 hdu 1868 找规律

#include #include using namespace std; main() { int n,i,j; while(cin>>n) { j = 0; if(n%2)j = j+1; for(i = 2;i<=sqrt(n);i++) { if(n%i==0)

2013-03-21 17:31:26 1478

原创 hdu 1711 kmp

#include #include #include using namespace std; int a[1000020],b[10200]; int p[10200]; int n,m; void getkmp() { int i=0,j=-1; p[i]=j; while(i<m) { while(j>=0&&b[i]!=b[j]) j=p[

2013-03-21 16:06:17 385

转载 hdu 2086 数学归纳法

想办法让A0和An+1有联系 可由已经给出的函数,推导出 n=3;4A1=3A0+A4-6C1-4C2-2C3 n=2;3A1=2A0+A3-4C1-2C2 n=1;2A1=A0+A2-2C1 数学归纳证明: 再假设n=5时;5A1=4A0+A5-8C1-6C2-4C3-2C4; 再用n=5的情况减去n=4的情况,会得出A1=A0+A5-A4-2C1-2C2-2C3-2C4; 再根据已有关系,带

2013-03-21 14:43:43 629

原创 hdu2522 模拟除法 和 无限循环小数的判断

#include #include #include #include #include #include #include #include #include #include using namespace std; int a[100009],hash[100009]; int main() {     int n;     scanf("%d",&n);     while(n--)

2013-03-21 13:53:36 610

原创 hdu 2087 BF 和 KMP算法

BF算法 :从正文s和模式p的第一个字符出发,将s和p的字符依次逐个进行比较,如果p中的所有字符均与s中的对应字符匹配,则说明匹配成功;如果在比较过程中发现了一个字符不匹配,则将模式p沿正文s向后移动一个字符的位置,然后再从p的第一个字符开始与中的对应字符逐个进行比较。以此类推,直到匹配成功或到达的末段为止。 #include #include int main() { ch

2013-03-20 17:06:04 471

原创 hdu 1789 贪心

想了好久 先按照减的分数高低排序 相同分数按照时间从小到大排序 之后从后遍历 能填的填上 不能填的加sum上 #include #include #include #include #include #include #include #include #include using namespace std; struct day { int a,b; }z[1020]

2013-03-20 13:03:44 377

原创 hdu 1088 字符串

#include #include #include #include #include #include #include #include using namespace std; char a[100]; int main() { string z="-------------------------------------------------------------------

2013-03-19 18:13:33 450

转载 hdu 1085 母函数

//给你1,2,5的硬币的数量 要求由这些硬币不能组成的最小的金额 //1,2,5的硬币所组成的金额的母函数 //Y=(1+x^2+x^3+x^4…+x^n1*1)*(1+x^2+x^4+x^6…x^n2*2)*(1+x^5+x^10+…x^n3*5) #include #include #include #include #include #include #include

2013-03-18 22:41:02 389

原创 hdu 1020 找规律

#include//根据1的位置找规律 #include #include #include #include #include #include #include using namespace std; int main() { int n; while(scanf("%d",&n)!=EOF) { int p=1; int cnt=0

2013-03-18 17:16:47 471

原创 hdu 1062 字符串处理

自己字符串处理太弱了 #include #include #include #include #include #include #include #include using namespace std; char a[1020]; int main() { int n; cin>>n; getchar(); while(n--) {

2013-03-18 17:13:43 437

原创 hdu 1398

#include #include #include #include #include #include #include #include using namespace std; int main() { int a[320],b[320],i,j,k,n; while(cin>>n&&n) { for(i=0; i<=n; i++)//给第一个表达式

2013-03-18 16:06:40 396

转载 hdu 1018 log10函数

#include #include int main() { int i,n,a; double s; scanf("%d",&n); while(n--){ s=0; scanf("%d",&a); for(i=1;i<=a;i++) s+=log10(i); printf("%d\n",(int)(s)+1); } return 0; } 根据lg(1*2

2013-03-18 10:03:32 389

转载 hdu 判断拐点

拐点 Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other) Total Submission(s) : 6   Accepted Submission(s) : 2 Font: Times New Roman | Verdana | Georgia Font Size: ← →

2013-03-17 11:04:11 556

原创 hdu 1879 最小生成树 prim

http://acm.hdu.edu.cn/showproblem.php?pid=1879 prim是任意一点求最小生成树 求出来就是最小生成树的最小了 dijkstra是用起始点 结束点的最小生成树 起点终点不定 就用prim了 #include #define maxn 105 const int inf=100000000; int n; int g[maxn][maxn]; i

2013-03-16 11:20:42 417

原创 hdu 2159 二维背包 完全

//杀怪数 可以不满 经验值 可以不满 问的忍耐度 怪物当要装的物品 #include #include #include #include #include #include #include using namespace std; const int maxn=100+20; int dp[maxn][maxn]; int jing[maxn]; int ren[maxn]; int ma

2013-03-16 11:00:39 326

原创 hdu 3496 二维背包 01

#include #include #include #include #include #include #include #include using namespace std; struct film { int length; int high; }z[200]; int dp[120][1200]; int main() { int t; cin>>t;

2013-03-12 18:20:58 382

原创 zoj 2095 求一个数除数的和

#include #include #include #include #include #include using namespace std; int m[500000+200]; int main() { int n; int d; d=sqrt(500000.0); m[1]=0; for(int i=2;i<=500000;i++) m[

2013-03-11 22:24:58 556

转载 hdu 1544 双向找回文数个数

#include #include #include #include #include using namespace std; char s[5050]; int main() { int p,i,half,left,right,cnt; while(scanf("%s",s)!=EOF) { i=strlen(s); cnt=0;

2013-03-08 20:44:44 618

原创 map 初学 hdu 1800

#include #include #include using namespace std; int main() { int n; while(scanf("%d",&n)!=EOF) { map m; int big=0; for(int i=1;i<=n;i++) { int x

2013-03-04 18:24:50 214

原创 hdu 1873 优先队列 priority_queue

http://acm.hdu.edu.cn/showproblem.php?pid=1873 #include #include #include using namespace std; char a[10]; struct node { int rank; int num; //优先对列默认递减排列 重载比较函数时候要跟递增排列的相反 bool ope

2013-03-04 18:04:07 184

原创 hdu 2117 模拟除法

#include #include using namespace std; int main() { int n,m; while(scanf("%d%d",&n,&m)!=EOF) { if(n==1) printf("0\n"); else { int temp=1;

2013-03-03 16:26:19 421

转载 入门经典 6.4.2 走迷宫 bfs 用两种输出路径

#include #include #define MAXN 105 int n, m, xs, ys, xt, yt; int maze[MAXN][MAXN],vis[MAXN][MAXN],fa[MAXN][MAXN];//fa放父亲编号 maze放图 int dist[MAXN][MAXN],last_dir[MAXN][MAXN],num[MAXN][MAXN]; int dx[]={-

2013-03-03 15:55:30 467

原创 训练指南 uva 11729 重载运算符比较vector大小

#include #include #include #include using namespace std; struct job { int b,j; bool operator < (const job& x)const { return j>x.j; } }; int main() { int n,T=0; while(sc

2013-03-03 15:40:59 351

空空如也

空空如也

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

TA关注的人

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