自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

chen_kkkk的专栏

算法什么的最讨厌了

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

原创 阿里移动推荐,新人离线赛-python实现

移动推荐新手实战赛学习代码-python实现

2017-10-31 11:53:23 1017 2

原创 hdu 4738 Caocao's Bridges(求割边和桥)

#pragma comment(linker, "/STACK:102400000,102400000")#include #include #include #include #include #include #include #include #include #include #include #include #include us

2013-09-17 20:03:36 780

原创 hdu 4739 Zhuge Liang's Mines

当时没做出来,事后看了别人的博客才知道#include #include #include #include using namespace std;const int maxx=110;bool map[maxx][maxx];int num[maxx][maxx];int ans=0;int n;struct kiss{int xx,

2013-09-17 17:25:33 682

转载 三分法

原文地址 点击打开链接   二分法作为分治中最常见的方法,适用于单调函数,逼近求解某点的值。但当函数是凸性函数时,二分法就无法适用,这时三分法就可以“大显身手”~~       如图,类似二分的定义Left和Right,mid = (Left + Right) / 2,midmid = (mid + Right) / 2; 如果mid靠近极值点,则R

2013-09-12 20:03:01 726

转载 hdu 3400Line belt 经典 三分

原文地址  点击打开链接题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3400题目大意:在平面上有两条直线:AB,CD,从A到D,如果在直线AB上行驶有速度P,在直线CD上行驶有速度Q,其它地方有速度R,求A到D的最短花费时间。解题思路:              首先固定AB上一点,第一次

2013-09-12 19:38:04 780

转载 char 与 unsigned char的本质区别

原文地址     点击打开链接在C中,默认的基础数据类型均为signed,现在我们以char为例,说明(signed) char与unsigned char之间的区别 首先在内存中,char与unsigned char没有什么不同,都是一个字节,唯一的区别是,char的最高位为符号位,因此char能表示-128~127, unsigned char没有符

2013-09-11 21:30:46 533

转载 字符串匹配算法 – Sunday算法

原文地址   点击打开链接假设我们有如下字符串:A = "LESSONS TEARNED IN SOFTWARE TE";B = "SOFTWARE";Sunday算法的大致原理是:先从左到右逐个字符比较,以我们的字符串为例:开始的时候,我们让i = 0, 指向A的第一个字符; j = 0 指向B的第一

2013-09-04 17:33:59 708 2

转载 计算字符串相似度()

原文地址  点击打开链接题目: 一个字符串可以通过增加一个字符,删除一个字符,替换一个字符得到另外一个字符串,假设,我们把从字符串A转换成字符串B,前面3种操作所执行的最少次数称为AB相似度如  abc adc  度为 1      ababababa babababab 度为 2      abcd acdb 度为2 字符串相似度算法可以使用

2013-09-03 23:15:29 600

原创 hdu 1176 免费馅饼

这就是一个数塔,只是我觉得这个题有点难想到是数塔;知道是数塔就简单了#include #define MAX 100001 using namespace std; int Hash[MAX][20]; int f[MAX][20]; int n; int get_max(int a, int b, int c) { int max = -1;

2013-08-30 14:43:19 629

原创 hdu 1173 采矿

当时我做这个题目感觉到是求中位数;结果还真是;嘿嘿#include #includeusing namespace std;#includedouble x[1000002],y[1000002];int main(){ int n; while(scanf("%d",&n)&&n) { for(int i=0;i<n;i++)

2013-08-30 12:24:23 977

原创 hdu 1171 Big Event in HDU

可以用多重背包可以用母函数#include using namespace std; int c1[250010], c2[250010];int value[55];int amount[55];int main(){ int nNum; while(scanf("%d", &nNum) && nNum>0) { me

2013-08-30 11:57:01 639

原创 hdu/hdoj 1166 敌兵布阵

使用线段树或者树状数组#include #include using namespace std;const int MAX = 50000;#define lowbit(x) ((x)&(-x))int com[ MAX + 1 ],N,T;void modify ( int pos, int val ){ while ( pos <= N ){

2013-08-30 11:49:56 592

原创 hdu 1159 Common Subsequence

求最长连续公共字串状态转移方程就直接看代码吧;#include #include #include #include #include using namespace std;string s1,s2;int dp[1100][1100];int main(){ while (cin>>s1>>s2) { memset(

2013-08-30 10:36:25 580

原创 hdu 1164 Eddy's research I

先用筛法筛出范围内的素数;然后就水了#include #include #include using namespace std;int prime[10000];bool vis[65555];int main(){ memset(vis,0,sizeof(vis)); for(int i=2; i<=250; i++) {

2013-08-30 10:36:10 649

原创 hdu/hdoj 1151 Air Raid

题目大意:在一个城镇,有m个路口,和n条路,这些路都是单向的,而且路不会形成环,现在要弄一些伞兵去巡查这个城镇,伞兵只能沿着路的方向走,问最少需要多少伞兵才能把所有的路口搜一遍。(其实就是给一个m个点n条边的有向无环图,求该图的最小路径覆盖)#include#include #include using namespace std;#define

2013-08-29 21:33:05 740

原创 hdu/hdoj 1150 Machine Schedule

最小点覆盖,把任务看成连线;#include#include #include using namespace std;#define MAXN 1001vector map[MAXN];int path[MAXN];int vst[MAXN];int n,m,k;//n,m??????????С int t;bool dfs(int v){ int

2013-08-29 21:14:04 657

原创 hdu/hdoj 1134 Game of Connections

卡特兰数,就模板了#include#include#includeusing namespace std;#define base 10000//数组一个单位存的是10000进制#define maxx 100//数组长度void multiply(int a[],int max,int b){ int i,array=0; for(i=max-1;i>=

2013-08-29 21:09:30 757

原创 hdu/hdoj 1130 How Many Trees?

卡特兰数;就直接模板了#include#include#includeusing namespace std;#define base 10000//数组一个单位存的是10000进制#define maxx 100//数组长度void multiply(int a[],int max,int b){ int i,array=0; for(i=max-1

2013-08-29 21:07:27 700

原创 hdu/hdoj 1114 Piggy-Bank

题目大意:用储钱罐存钱,知道目前罐的重量以及空罐的重量,然后给出n种硬币的币值和重量,问现在储钱罐里至少有多少钱这个题是一个完全背包问题,不过注意的是最小值;状态转移方程我就不写了#include using namespace std; int nCases;int nPack, nVolume1, nVolume2, nVolume;int weight[

2013-08-29 21:02:19 643

原创 hdu/hdoj 1108 最小公倍数

#include #include using namespace std;int fun(int x,int y){ return y?fun(y,x%y):x;}int main(){ int a,b; while (scanf("%d%d",&a,&b)!=EOF) { cout<<a/fun(a,b)*b<<endl;

2013-08-29 20:42:23 756

原创 hdu/hdoj 1106 排序

#include #include #include#include using namespace std;char s[1010];int a[1010];int main(){ while ( cin>>s ) { char *t; int n = 1; memset ( a, 0, sizeof (

2013-08-29 20:39:46 571

原创 hdu/hdoj 1102 Constructing Roads

最大生成树;提前已经修好的路提前加入并查集;个人比较喜欢并查集求解最大生成树#include#include#includeusing namespace std;int pre[110], map[110][110];struct Kruskal{ int a, b, cost;};Kruskal village[110 * 110 / 2];b

2013-08-29 20:34:49 483

原创 hdu/hdoj 1087 Super Jumping! Jumping! Jumping!

入门dp;求不连续最大上升子串方程自己看代码#include #include #include using namespace std;int price[1001];__int64 dp[1001];int max(int x,int y){ return x>y?x:y;}bool cmp(__int64 x,__int64 y){

2013-08-29 20:24:28 579

原创 hdu/hdoj 1086 You can Solve a Geometry Problem too

计算两条线段是否相交推荐计算几何文章http://dev.gameres.com/Program/Abstract/Geometry.htm#判断两线段是否相交#include using namespace std; struct line { double x1,y1,x2,y2; }ln[105]; int n; int m

2013-08-29 17:59:57 659

原创 hdu/hdoj 1085 Holding Bin-Laden Captive!

这个题暴力枚举会超时,然后就是母函数解法,这里推荐一篇大神的母函数文章http://wenku.baidu.com/view/d0e5cc4433687e21af45a9a8.html看了这篇文章,就应该懂母函数了#include using namespace std; int c1[10000], c2[10000];int num[4];int main(){

2013-08-29 17:45:03 583

原创 hdu/hdoj 1083 Courses

最大匹配问题;直接代码了,#include#include #include using namespace std;#define MAXN 350vector map[MAXN];int path[MAXN];int vst[MAXN];int n,m,k;//n,m??????????С //int t;bool dfs(int v)

2013-08-29 17:36:25 615

原创 hdu/hdoj 1081 To The Max

最大子矩阵枚举每种子矩阵情况,然后就是一个一维dp了#include #include #include using namespace std;const int INF=numeric_limits::min();int array[101][101];int aa[101];int main(){ int t; whil

2013-08-29 17:31:41 628

转载 hdu/hdoj 1079 Calendar Game

每次月份或者天数加1,总能改变他们的奇偶性;但又9.30  11.30 的例外;#include#includeusing namespace std;int main(){ int t; scanf("%d",&t); while(t--){ int y,m,d; scanf("%d%d%d",&y,&m,

2013-08-29 17:25:31 743

原创 hdu/hdoj 1075 FatMouse and Cheese

记忆化搜索;和滑雪那个题目很像;题意:老鼠偷吃,有n*n的方阵,每个格子里面放着一定数目的粮食,老鼠每次只能水平或竖直最多走k步,每次必须走食物比当前多的格子,问最多吃多少食物。#include #include #include using namespace std;int n,k;int map[110][110];int dp[110][110]

2013-08-29 16:08:52 536

原创 hdu/hdoj 1075 What Are You Talking About

stl 中的map容器,确立了一对一的关系;#include #include #include using namespace std;string words,temp;map mp;int main (){ cin >> words; while ( cin >> words, words != "END" ) { cin >

2013-08-29 15:33:37 751

原创 hdu/hdoj 1069 Monkey and Banana

题目大意:给你N种箱子,给出它的长,宽,高;(每种箱子视为无限个)。把箱子叠层起来,问最大能叠多高。但要求的必须在上面一个箱子的长和宽都要比它下面的箱子的长和宽都小。思路:其实就是求最长的单调递减序列。题目上说每种可以有无限个,那么就把N中类型的箱子都列举出来,全部进行比较。在长和宽的递减下,求最大能得出的最大高度了。#include #include using

2013-08-29 15:23:13 667

原创 hdu/hdoj 1068 Girls and Boys

就不解释为什么是最大独立集了;使用匈牙利算法:最大独立集=顶点数-最大匹配(双向图)/2#include#include #include using namespace std;#define MAXN 1000vector map[MAXN];//int map[MAXN][MAXN];int path[MAXN];int vst[MAXN]

2013-08-29 14:59:17 588

原创 hdu/hdoj 1062 Text Reverse

注意有多个空格的情况;所以最好不用strtok()函数;#include using namespace std;int main(){ int t; cin>>t; getchar(); while(t--) { char a[1001]; cin.getline(a,1001);

2013-08-29 14:50:28 627

原创 hdu/hdoj 2154 跳舞毯

这个题可以理解为一个递推的题目吧;递推方程是aa[i]=aa[i-1]+2*aa[i-2];思路:分第i-2步是否在A点;当在A点时,第i-1步有2种走法;所以是2×aa[i-2];当不在A点时;那第i-1步也不能在A点(题目要求),所以就只能走B或C,所以aa[i-1];#include using namespace std;__int64 aa[10

2013-08-29 14:45:57 1277

原创 hdu/hdoj 1060 Leftmost Digit

这个题目有一个数学知识对于十进制的任意一个数 n,都可以变成 n = a * 10^m(1观察上面的式子不难发现,n 的首位仅由a的整数部分决定。所以我们可以想办法先把a的值求出来,再对a的值取整,就是我们所要的结果。首先,我们对式子两边同时取以10为底的对数,即 log10(n) = log10(a) + m。(m为整数,log10(a)为小数)通过 log 函数,我们可以容

2013-08-28 22:32:02 592

原创 hdu/hdoj 1058 Humble Numbers

这个题可能没用到什么数论的知识,但需要一点 对 素数分解的知识;知道这个素数可以表示成 M=2^x  *  3^y  *  5^z  *  7^k;然后就是就是考虑数的大小排列问题; 在处理方式上参考了Tanky Woo大神的代码;  #include #include using namespace std; __int64 humble[6000];int

2013-08-28 21:53:19 601

原创 hdu/hdoj 1054 Strategic Game

这个题是二部图的题目, 是求一个最小点覆盖; 最小点覆盖==最大匹配(双向图)/2  #include#include #include using namespace std;#define MAXN 1501vector map[MAXN];int path[MAXN];int vst[MAXN];int n,m,k;//n,m??????????С

2013-08-28 18:52:49 584

原创 hdu/hdoj 1053 Entropy

题目大意:给你一个字符串,每一个字符在计算机中用8位编码表示,所以给你字符串AAAAABCD,它在计算机中要占用64位,可是为了节省内存,希望你能设计出一种编码,使得内存的占用尽可能的少,即字符串的位数表示最少,输出  原本占几位,编码后占几位,二者的商  #include #include #include #include #include #include usi

2013-08-28 18:12:31 726

转载 puk 1088 滑雪(记忆化搜索)

原文地址点击打开链接 http://acm.pku.edu.cn/JudgeOnline/problem?id=1088非常经典的一道动态规划题,AC的时候心情简直舒畅到了极点.时间限制是1000MS,如果直接用DFS肯定超时的.马上想到动归,用opt[i][j]记录从点node[i][j]出发的最短路径(不算本身,只算延伸;也就是初始值为0)状态转移方程opt

2013-08-28 17:53:00 579

原创 hdu/hdoj 1023 Train Problem II

裸的卡特兰题目;就直接模板了;#include#include#includeusing namespace std;#define base 10000//数组一个单位存的是10000进制#define maxx 100//数组长度void multiply(int a[],int max,int b){ int i,array=0; for(i=m

2013-08-27 12:51:54 673

空空如也

空空如也

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

TA关注的人

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