自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(186)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 VS2012下C++操作word(整理)

参考:http://bbs.csdn.net/topics/300141389            http://blog.csdn.net/hhhh63/article/details/7652696            最近做的东西要用C++来操作office word,生成一个表格,找资料找了好久才弄明白,记一下~~            1.建一个基于对话框的MFC,可以参

2016-01-15 21:05:35 6006 1

原创 PAT-Advanced Level 1019 判断一个数在n进制下是否是回文数

链接:http://www.patest.cn/contests/pat-a-practise/1019本来想用char数组存每一位的数字节省空间,但是因为进制>10,所以比较麻烦,改用int就可以#include#include#include#includeusing namespace std;int num[90000000];int main(){ int

2015-08-01 13:51:28 604

原创 PAT-Advanced Level -1015 判断素数反转后是否是素数

链接:http://www.patest.cn/contests/pat-a-practise/1015输入 :N  D        N (5) and D (1 输出 :Yes/No如果N是素数并且N在D进制下反转后 仍然是素数,则输出Yes,否则No【分析】先构造  以内的素数表,然后求反转,判断并输出结果     构造素数表参考博客  http://blog.csd

2015-08-01 12:30:46 725

原创 PAT Advanced Level 2011 注意浮点数精度问题

链接:http://www.patest.cn/contests/pat-a-practise/1011    输入:W1 T1 L1W2 T2 L2W3 T3 L3输出:[min(W1,T1,L1)*min(W2,T2,L2)*min(W2,T2,L2)*0.65-1]*2【分析】这个题目是4个题目中的第一题,难点应该是浮点数的精度问题#include

2015-08-01 11:28:34 599

原创 PAT-Advanced Level- 1002 两个多项式相加

题目链接:http://www.patest.cn/contests/pat-a-practise/1002  两个多项式相加1.  输入  项数k1    k1个(次数 底数) 次数的范围是[0-1000]        项数k2    k2个(次数 底数)   输出  和的项数k  k个(次数 底数)2. 解题关键: 题目中的底数是小数,而输出时要求精确到一位小数,而且还要输出

2015-07-27 20:42:38 607

原创 UVA 11234 建树以及栈和队列的运用

#include#include#include#include#include#include#define MAXN 10000+10using namespace std;typedef struct Node{ int parent,lchild,rchild,order; char ch; Node(int a=0,int b=0,int c=0

2013-11-27 21:39:58 757

原创 HDU 4771 BFS

题意:已知一张图,一个起点,求到某些已知点的最短路程。         思路:由于最多要求到4个点的距离,所以依次bfs求出起点到所求点的距离、所求点1到其他所求点的距离、所求点2到其他所求点距离,,,,,,然后全排列每一种情况,找出最小值。#include#include#include#include#include#include#define INF 1000000

2013-11-12 23:01:56 635

原创 UVA 10801 - Lift Hopping Dijkstra 算法

d[i][j]表示从i电梯到j层所用的最短时间。#include#include#include#include#include#include#include#define time tttusing namespace std;typedef struct node{ int order,floor; node(int a=0,int b

2013-11-06 21:44:13 704

原创 Havel-Hakimi定理(判断一个序列是否可图) UVA 10720

http://www.docin.com/p-540438846.html

2013-10-31 19:21:08 569

原创 UVA 11218 - KTV DFS

深搜。。。。。。。#include#include#include#includeusing namespace std;typedef struct node{ int a,b,c,s; node(int x=0,int y=0,int z=0,int d=0) { a=x,b=y,c=z,s=d; }} node;

2013-10-29 17:34:20 788

原创 ZOJ 3365 Integer Numbers 思路题

题意:告诉你一串数,改变最少的数,使之变成连续的数(即公差为1的等差的数列)。          分析:数据量是n=50000,n^2的程序超时,一开始以为是个动规之类的,想枚举每一个数,以这个数不变,来改变其他的数,记录需要改变的数的个数。同时每个位置出现过的数标记,结果不是TLE,就是爆栈。实际上,改变最少的数,就是找到尽可能多的数使他们的值num[i]-i是一个固定值。所以,记录所有的n

2013-10-27 11:57:58 750 2

原创 Codeforces 358A - Dima and Continuous Line 暴力+数学

自己做时没思路,看了题解,,,,,,恍然大悟,竟然是个O(n^2)的复杂度。摘自题解:          #include#include#include#includeusing namespace std;int main(){// freopen("in.txt","r",stdin); int n,num[1000+10]; scan

2013-10-26 13:12:39 1515

原创 Codeforces 358B - Dima and Text Messages 字符串

考虑到每个字符串的长度不确定,而总长度是确定的,所以用strcat连接每个串+"           改用string存每个字符串。            AC后去掉check()函数,发现也是对的。#include#include#include#include#define MAXN 100000+12using namespace std;char temp[MA

2013-10-26 11:46:36 976

原创 UVA 10369 最小生成树

最小生成树的模板题,注意保存S个用到的最大的边长。#include#include#include#include#include#includeusing namespace std;int x[505],y[505];typedef struct node{ int x,y; double dis; bool operator <(const

2013-10-23 20:46:48 599

原创 UVA 567 Floyd算法

又是个模版题,把两点之间的距离看作是1。#include#include#include#include#define INF 10000using namespace std;int d[23][23];int main(){// freopen("in.txt","r",stdin); int a,b,cas=0; while(scanf("%d

2013-10-23 20:00:39 633

原创 UVA 10608 dfs或者并查集

题意:A和B是朋友,B和C是朋友,那么A和C是朋友,输入一些朋友关系,输出最大人数的朋友圈。1.直接深搜一遍#include#include#include#define MAXN 30000+10using namespace std;bool vis[MAXN];vectorst[MAXN];int n,m,ans,maxx;void dfs(int cur){

2013-10-22 21:02:50 635

原创 uva 10029 简单DP

两个for循环 2.632s水过。。。。。。。。。#include#include#include#include#define MAXN 25000+5using namespace std;typedef struct node{ char str[20]; int len;} node ;node word[MAXN];bool suit(int

2013-10-17 16:09:45 719 1

原创 UVA 558 判断负环

#include#include#include#define MAXN 2000+5#define INF 1000000using namespace std;int u[MAXN],v[MAXN],w[MAXN],n,m,d[1005];int main(){// freopen("in.txt","r",stdin); int cas; scanf(

2013-10-14 20:37:51 603

原创 UVA 10099 Kruskal算法 Floyd算法

Floyd:#include#include#include#define MAXN 105#define INF 10000using namespace std;int d[MAXN][MAXN];int main(){// freopen("in.txt","r",stdin); int n,r,cas=0; while(scanf("%d%d

2013-10-14 20:28:06 697

转载 Bellman-Ford算法 和 SPFA算法

从百度以及大牛们的博客中找到的,仅供学习参考。。。。               Bellman-ford算法是求含负权图的单源最短路径算法,效率很低,但代码很容易写。即进行不停地松弛(relaxation),每次松弛把每条边都更新一下,若n-1次松弛后还能更新,则说明图中有负环(即负权回路,本文最后有解释),无法得出结果,否则就成功完成。Bellman-ford算法有一个小优化:每次松弛先设

2013-10-13 17:26:53 920

原创 HDU 3650 贪心+二分

( 这个题数据量比较小,所以类似于模拟也可以做。)            按照起始时间排序,然后从最小的起点开始,找在这一天内能够观看的所有节目,写了个二分优化了时间。       #include#include#include#include#define MAXN 110using namespace std;typedef struct node{ int

2013-10-09 19:46:14 556

原创 HDU 4722 WA求大神指教(已经更正)

规律很容易发现,从10开始,每10个数,有一个满足条件。即19,28,37,46,55,64,73,82,91,109,118,127,136,145,154,163,,,,,,,          代码如下:#include#include#include#define LL long longusing namespace std;int main(){// fre

2013-09-20 10:16:24 749 3

原创 HDU 4195 几何

题意,有一个n多边形,且是正多边形,从中任取3点构成一个三角形。告诉你这3个点的坐标,求满足条件的最小的n。                   基本思路,暴力,从i(3#include#include#include#include#define eps 1e-6#define pi acos(-1)using namespace std;struct node{

2013-09-05 15:39:17 579

转载 codeforces 340B 几何 叉积

转载于http://www.cnblogs.com/zstu-abc/p/3293327.html题意:平面上n个点(n,问任意四个点组成的四边形(保证四条边不相交)的最大面积是多少。分析:1、第一思路是枚举四个点,以O(n4)的算法妥妥超时。2、以下思路源自官方题解  以O(n2)枚举每一条边,以这条边作为四边形的对角线(注意:这里所说的对角线是指把四

2013-09-02 20:47:53 679

原创 HDU 1025 最长递增子序列

求最长递增子序列nlogn的算法:(转载于http://www.felix021.com/blog/read.php?1587)最长递增子序列,Longest Increasing Subsequence 下面我们简记为 LIS。排序+LCS算法 以及 DP算法就忽略了,这两个太容易理解了。假设存在一个序列d[1..9] = 2 1 5 3 6 4 8 9 7,可以看出来它的LIS

2013-08-30 17:05:30 543

转载 HDU 3849 无向图的割顶和桥模版题

原理在lrj训练指南P312,模板!不连通图的割边是0!!所以这个题要先判断是否是连通的。另外因为要求是按照输入顺序输出,所以不得不说保存数据很麻烦。#include#include#include#include#include#include#include#includeusing namespace std;typedef pair Pair;int n,m,tot

2013-08-29 17:17:33 769

原创 HDU 3853 概率DP

参考      http://www.cnblogs.com/zhj5chengfeng/archive/2013/03/01/2939423.html               http://www.cnblogs.com/andyzhang2068/archive/2011/07/20/2111239.html               看到这个题知识感觉到很麻烦,没有往DP这

2013-08-29 07:20:38 552

原创 HDU 3848 DFS 树形DP

给你一棵树,找出两个叶子之间的最短距离。            第一种是个纯dfs+稍微的剪枝,从每一个叶子出发,dfs直到找到一个新的叶子,更新最短距离。781ms#include#include#include#include#include#define MAXN 10001#define INF 2147483647using namespace std;int

2013-08-28 20:06:44 566

原创 UVA 10404 - Bachet's Game 组合博弈

杭电刘春英老师的课件中有:必败点(P点) :前一个选手(Previous player)将取胜的位置称为必败点。必胜点(N点) :下一个选手(Next player)将取胜的位置称为必胜点。步骤1:将所有终结位置标记为必败点(P点);步骤2: 将所有一步操作能进入必败点(P点)的位置标记为必胜点(N点)步骤3:如果从某个点开始的所有一步操作都只能

2013-08-20 19:05:40 699 5

转载 ZOJ 3725 Painting Storages DP+排列计数

转载于http://blog.csdn.net/zu_xu/article/details/9401497         采用递推:当NM时,若1到N-1满足条件,则N可以任意染色,方案数为C(N-1)*2;否则,必有1到N-M-1不满足条件,N-M为蓝,N-M+1到N-1为红,这时将N染成红色即可,方案数为2^(N-M-1)-C(N-M-1),即1到N-M-1所有的染色方案数减去满足条件的

2013-08-19 20:09:56 476

原创 HDU 3952 2011阿里巴巴程序设计公开赛

这个是2011阿里巴巴程序设计公开赛中的一个题,我们用这套题打了一场组队赛,最后却输在了这个题上,其实看了解题报告http://hi.baidu.com/kerrynit/item/85c865090210ed0aebfe3872很好做,只是比赛时不容易证明这个思路。摘自解题报告:1002 Fruit Ninja类型:几何(简单)假设有一条线穿过一些水果,那么我们将

2013-08-19 11:13:50 747

原创 SGU 180 贪心

不得不说,又是没读懂题意,看了解题报告才知道,大意是有n条链子,每条链子上有L个环,一分钟内可以从一条链子上拆下一个环,然后把连接起两条链子,问最小的时间把这些链子连成一条链子。拆最短的链子,从最长的开始连。#include#include#include#includeusing namespace std;int main(){ //freopen("in.txt","

2013-08-18 17:47:44 481

原创 Codeforces 245H 回文 DP

看了解题报告才弄清楚状态转移方程:Let isPal[i][j] be 1 if s[i...j] is palindrome, otherwise, set it 0. Let's define dp[i][j] to be number of palindrome substrings of s[i...j]. Let's calculate isPal[i][j] and

2013-08-18 13:06:41 587

转载 HDU 1207 汉诺塔问题

转载于http://qianmacao.blog.163.com/blog/static/203397180201211555939662/http://acm.hdu.edu.cn/showproblem.php?pid=1207思路是借鉴网上一大牛的,写的很完美了,所以一句没改变体汉诺塔    问题描述:在经典汉诺塔的基础上加一个条件,即,如果再加一根柱子(

2013-08-16 10:21:13 517

原创 HDU 2136 Largest prime factor 3种求素数表的方法

总结了3种求素数表的方法第一种:void intline(){ memset(prime,true,sizeof(prime)); prime[1]=false; prime[0]=false; for(int i=2; i*i<MAXN; i++) { for(int j=2; j*i<MAXN; j++)

2013-08-15 17:34:54 734

原创 HDU 1203 贪心或者DP

贪心策略是申请offer需要的钱越少越好,而成功率越高越好,所以按照需要的钱和成功率的比值从小到大排序,依次选择。#include#include#include#include#define MAXN 10010using namespace std;struct node{ int money; double p,r; bool operator<(c

2013-08-15 11:23:38 507

原创 HDU 1239 Calling Extraterrestrial Intelligence Again 素数表

每次遇到这样的题都无从下手,其实根据题意分析一下,并不难,模拟就可以了。这个题先构造100000以内的素数表,然后根据条件判断就OK。#include#include#include#define MAXN 100010using namespace std;bool prime[MAXN];void intline(){ prime[1]=false; prim

2013-08-15 09:54:25 661

原创 HDU 1054Strategic Game 贪心

这个题与http://blog.csdn.net/anqier0468/article/details/9453567看起来没什么联系,但是贪心策略是一样的,(做这个题时还是没想起来),从度数为1的结点a开始算起,因为删除这个度数为1的结点肯定不如删除与它相连接的结点b效率高,所以一定是在与它相连的结点b上房哨兵,然后删除与b相连的边,直到没有度数为1的结点。特别注意只有一个结点时输出1。

2013-08-14 10:35:29 624

原创 HDU1102 Constructing Roads 最小生成树

基本算是最小生成树的模板题,对于已经建好的路,把它的长度标记为0就可以了。这个题比较坑的地方是输入是有多组数据的,还有数组越界有可能返回的是WA,注意数组的大小。如果全部存下,应该是n*n+n*(n+1)/2.#include#include#include#include#include#define MAXN 105using namespace std;int p[MAX

2013-08-13 20:52:09 467

原创 HDU 1009 贪心

一开始以为浮点数有精度损失,在输出那里写 printf("%.3lf\n",sum+0.0001);结果WA了。不需要考虑精度损失。#include#include#include#include#include#define MAXN 5010using namespace std;struct Node{ int j,f; double p; b

2013-08-13 19:22:54 525

vs2012下C++操作word的简单实例

vs2012下C++操作word的简单实例,详见 http://blog.csdn.net/anqier0468/article/details/50525811

2016-01-15

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

TA关注的人

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