C/C++
文章平均质量分 65
从此醉
痴情种子本天生故曰向来痴相见恨晚犹断肠是名从此醉
展开
-
题目1200:最大的两个数 ACM C语言实现
#include #define P(z) for(i=0;i<5;++i)printf("%d ",z[i]);printf("\n"); int main(){ int n,i,j,t,a[5],b[5]; while(~scanf("%d",&n)){ while(n--){ scanf("%d%d%d%d%d%d%d%d%d%d",a,a+1,a+2,a+3,a+4转载 2012-03-13 10:51:28 · 1190 阅读 · 0 评论 -
广度优先遍历求解 ZOJ 649 (Rescue)
Angel was caught by the MOLIGPY! He was put in prison by Moligpy. The prison is described as a N * M (N, M Angel's friends want to save Angel. Their task is: approach Angel. We assume that "approach原创 2013-04-01 16:08:15 · 1363 阅读 · 1 评论 -
数位DP HOJ 3555
http://acm.hdu.edu.cn/showproblem.php?pid=3555题意就是找0到n有多少个数中含有49。数据范围接近10^20DP的状态是2维的dp[len][3]dp[len][0] 代表长度为len不含49的方案数dp[len][1] 代表长度为len不含49但是以9开头的数字的方案数dp[len][2] 代表长度为len含有49的方案数转载 2013-03-26 15:13:55 · 969 阅读 · 0 评论 -
DFS深度优先搜索结合剪枝的应用
题目大意:老鼠的起点在S,出后在D,X是墙壁不能通过,.可以通过。出口在第T时刻开启,老鼠必须在这这个时刻到达出口,中途不能停留。The doggie found a bone in an ancient maze, which fascinated him a lot. However, when he picked it up, the maze began to shake, a原创 2013-03-21 22:05:16 · 1389 阅读 · 0 评论 -
算法笔记之 贪心算法 (题目1082:代理服务器)
题目描述: 使用代理服务器能够在一定程度上隐藏客户端信息,从而保护用户在互联网上的隐私。我们知道n个代理服务器的IP地址,现在要用它们去访问m个服务器。这 m 个服务器的 IP 地址和访问顺序也已经给出。系统在同一时刻只能使用一个代理服务器,并要求不能用代理服务器去访问和它 IP地址相同的服务器(不然客户端信息很有可能就会被泄露)。在这样的条件下,找到一种使用代理服务器的方案,使得代原创 2013-03-16 13:03:10 · 3133 阅读 · 0 评论 -
图论之Havel定理 Frogs' Neighborhood (青蛙的邻居)
Havel定理 就是图的可判定性。今天刚学的,不多说了,大家google一下就懂了。http://poj.org/problem?id=1659#include #include #include #include using namespace std;//由于要排序,需要用结构体保存节点的 下标typedef struct node{ int inde原创 2013-03-18 17:58:03 · 1616 阅读 · 0 评论 -
Human Gene Functions - LCS 动态规划 HDU-1080
Problem DescriptionIt is well known that a human gene can be considered as a sequence, consisting of four nucleotides, which are simply denoted by four letters, A, C, G, and T. Biologists have bee原创 2013-06-24 10:53:05 · 1087 阅读 · 0 评论 -
算法笔记之 并查集入门 POJ 1611
http://poj.org/problem?id=1611DescriptionSevere acute respiratory syndrome (SARS), an atypical pneumonia of unknown aetiology, was recognized as a global threat in mid-March 2003. To min原创 2013-03-28 16:02:41 · 1313 阅读 · 0 评论 -
题目1030:毕业bg 进化版01背包
暂时只想到用效率较低的递归方法解决吗,还好测试数据有点弱,没超时,哈哈。刚开始总是WA,纠结了很久,才发现应先按离开的时间排下序。 每年毕业的季节都会有大量毕业生发起狂欢,好朋友们相约吃散伙饭,网络上称为“bg”。参加不同团体的bg会有不同的感觉,我们可以用一个非负整数为每个bg定义一个“快乐度”。现给定一个bg列表,上面列出每个bg的快乐度、持续长度、bg发起人的离校时原创 2012-03-30 11:45:01 · 1563 阅读 · 0 评论 -
使用hash表加速寻找-POJ 3349
DescriptionYou may have heard that no two snowflakes are alike. Your task is to write a program to determine whether this is really true. Your program will read information about a collection of s原创 2013-08-14 15:30:53 · 999 阅读 · 0 评论 -
C++ STL 使用总结
这个只做简单的总结,用到时再细查。1、sort 排序常用,不多说。sort(dcre,dcre+n); //dcre是数组也可以定义自己的比较函数2、unique 删除重复的元素unique(dcre,dcre+n);3 priority_queue//优先级队列默认是使用vector作容器。 priority_原创 2013-10-15 17:37:44 · 896 阅读 · 0 评论 -
分治算法之 棋盘覆盖问题(完整代码实现)
我在这里是用了一个简化的方式,只是代码简化,还是分治递归思想。一分为4,直至2*2时可直接解决。四种骨牌的摆放刚好对应:dir[4][2] = { { 0, 0 }, { 0, 1 }, { 1, 1 }, { 1, 0 } }; 这四个方向。而这4个方向,又可用来判断残缺位置的 4个方向(左上,右上,右下,左下)。因此可以用循环,而不是依次判断四个方向,简化代码。也可以用一个全局原创 2013-03-23 20:04:31 · 5577 阅读 · 0 评论 -
贪心算法求解 图的m着色问题
图的m色判定问题: 给定无向连通图G和m种颜色。用这些颜色为图G的各顶点着色.问是否存在着色方法,使得G中任2邻接点有不同颜色。图的m色优化问题:给定无向连通图G,为图G的各顶点着色, 使图中任2邻接点着不同颜色,问最少需要几种颜色。所需的最少颜色的数目m称为该图的色数。若图G是可平面图,则它的色数不超过4色(4色定理). 4色定理的应用:在一个平面或球面上的任何地图能够只用4种原创 2013-03-29 19:45:51 · 7497 阅读 · 2 评论 -
面试题:++*p, *p++ 和 *++p
预测下面程序的输出:01// PROGRAM 102#include 03int main(void)04{05 int arr[] = {10, 2原创 2014-04-04 12:47:57 · 1861 阅读 · 0 评论 -
题目1025:最大报销额 (dfs深度优先搜索)以及 01背包求解
http://ac.jobdu.com/problem.php?pid=1025题目描述: 现有一笔经费可以报销一定额度的发票。允许报销的发票类型包括买图书(A类)、文具(B类)、差旅(C类),要求每张发票的总额不得超过1000元,每张发票上,单项物品的价值不得超过600元。现请你编写程序,在给出的一堆发票中找出可以报销的、不超过给定额度的最大报销额。输入:原创 2013-02-12 17:40:22 · 6642 阅读 · 1 评论 -
C语言 概率算法求解π
#include#include#include#includeint main(){int j;for(j=0;j<10;j++) { int i,n,k; double x,y,f; k=0; srand( (unsigned)time(0)); printf("%d\n",time(0)); printf(" 输入次数:"); scanf("%d",&n);原创 2013-04-30 14:16:53 · 3778 阅读 · 0 评论 -
快速幂取模
#include #include #include using namespace std;//计算 m^n % k, 快速幂取模long getMi(long m,long n,long k){ long t = 1; int tmp = m; while(n){ if( n & 1) t = t * tmp % k; tmp = tmp * tmp % k; n原创 2013-03-25 21:44:34 · 952 阅读 · 0 评论 -
九度OJ 1172 哈夫曼树(不用建树)
题目描述:哈夫曼树,第一行输入一个数n,表示叶结点的个数。需要用这些叶结点生成哈夫曼树,根据哈夫曼树的概念,这些结点有权值,即weight,题目需要输出所有结点的值与权值的乘积之和。输入:输入有多组数据。每组第一行输入一个数n,接着输入n个叶节点(叶节点权值不超过100,2输出:输出权值。样例输入:5 1 2 2转载 2012-03-14 14:37:57 · 1428 阅读 · 0 评论 -
用指针操作二维数组 C 语言
//用指针 操作 二维数组 float (*pointer)[4] , pointer是float *型变量,要看清楚!指向一维数组,有4个元素。float * search(float(* pointer)[4],int n)看清这种写法!// 注意!! *(pointer + n) 和 (*pointer + n) 的区别。// pointer是指向二维数组的!!原创 2012-03-14 21:13:22 · 1572 阅读 · 0 评论 -
C语言结构体 基础学习
struct Student{ long num; char name[20];};1、指向结构体变量的指针int main() { struct Student stu; struct Student * p; p = &stu; //注意这一句的作用 stu.num = 89101; //stu可以直接使用,但是p必须赋初值 //stu.name = "gao原创 2012-03-15 09:09:18 · 800 阅读 · 0 评论 -
判断一个数在2-16进制下是否为回文 Palindrom Numbers
Statement of the Problem We say that a number is a palindrom if it is the sane when read from left to right or from right to left. For example, the number 75457 is a palindrom.Of course, the prope原创 2012-10-08 23:02:12 · 2575 阅读 · 0 评论 -
贪心算法::启发式搜索
蛮干算法的成功完全是借助于计算机运算的快速,如果问题的解比较少的时候使用起来是比较容易的。但当问题的解比较多,则不宜使用,常用的做法是剪枝,剪枝是一种形象的描述,因为按深搜的算法,图可以描述为与之对应的树或森林,而剪枝的意思就是去掉某些子树,为什么要去掉,这里要用到一个剪枝判断,判断的方法是具体问题具体分析,但是有一点是要考虑到的,剪枝的高效性是建立在判断的额外开销上的,如果这里的开销大,则剪枝只转载 2012-10-29 09:26:04 · 4527 阅读 · 0 评论 -
C++ 之 const 修饰符用法 详解!
•const:常量限定修饰符,它把一个对象转换为常量(constant)。const对象必须初始化而且是在定义的同时。初始化后的const对象(或指针)是不能修改的。例1:int i = 0; const int j = 0; // int const j = 0; const int *p; // int const *p ;可改变p但不能改变*p int* c原创 2012-11-02 00:07:50 · 4864 阅读 · 1 评论 -
简单算法练习-题目1004:Median
链接:http://ac.jobdu.com/problem.php?pid=1004题目描述: Given an increasing sequence S of N integers, the median is the number at the middle position. For example, the median of S1={11, 12, 13,原创 2013-01-07 15:31:48 · 1169 阅读 · 0 评论 -
题目1007:奥运排序问题
http://ac.jobdu.com/problem.php?pid=1007题目描述:按要求,给国家进行排名。输入:有多组数据。第一行给出国家数N,要求排名的国家数M,国家号从0到N-1。第二行开始的N行给定国家或地区的奥运金牌数,奖牌数,人口数(百万)。接下来一行给出M个国家号。输出:排序有4种方式: 金牌总数 奖牌总数 金牌人口比例 奖牌人口比例 对每个国家给出最原创 2013-01-18 11:19:20 · 2789 阅读 · 0 评论 -
算法笔记之 整数划分
例如:6 有如下11种划分则p(6)=116;5+1;4+2, 4+1+1;3+3, 3+2+1, 3+1+1+1;2+2+2, 2+2+1+1, 2+1+1+1+1;1+1+1+1+1+1;在正整数n所有划分中,将最大加数n1不大于m的划分个数记作q(n, m).我们可以建立如下递归关系:(1) q(n, 1) = 1, n>=1最大加原创 2013-03-05 16:33:57 · 1185 阅读 · 0 评论 -
算法笔记之 全排列算法 一 递归求解
集合R={1,2,3,4}的全排列可以分解为:1,{2,3,4}的全排列 + 2,{1,3,4}的全排列 + 3,{1,2,4}的全排列 + 4,{1,2,3}的全排列。继续分解:{2,3,4} 为 2,{3,4}的全排列,3,{2,4}, 4,{2,3}…………………………………………直到集合里只有一个元素,就可直接输出了.这个是非递归的方法:http://blog原创 2013-03-05 06:29:18 · 22427 阅读 · 13 评论 -
ACM练习 题目1029:魔咒词典 C++ map的使用
题目描述: 哈利波特在魔法学校的必修课之一就是学习魔咒。据说魔法世界有100000种不同的魔咒,哈利很难全部记住,但是为了对抗强敌,他必须在危急时刻能够调用任何一个需要的魔咒,所以他需要你的帮助。 给你一部魔咒词典。当哈利听到一个魔咒时,你的程序必须告诉他那个魔咒的功能;当哈利需要某个功能但不知道该用什么魔咒时,你的程序要替他找到相应的魔咒。如果他要的魔咒不在词典中,就输出原创 2013-03-14 09:42:14 · 3642 阅读 · 0 评论 -
CString,string,char*之间的转换
这几天经常用到的,不如记下吧。这三种类型各有各的优点,比如CString比较灵活,是基于MFC常用的类型,安全性也最高,但可移植性最差。string是使用STL时必不可少的类型,所以是做工程时必须熟练掌握的;char*是从学习C语言开始就已经和我们形影不离的了,有许多API都是以char*作为参数输入的。所以熟练掌握三者之间的转换十分必要。以下我用简单的图示指出三者之间的关系,转载 2013-03-14 12:27:02 · 922 阅读 · 0 评论 -
ACM练习 题目1029:魔咒词典 之优化
题目和解答在这里:ACM练习 题目1029:魔咒词典 C++ map的使用上次用C++的map做的,运行时间并不理想。用了两个map确实有点浪费,还有一点是把所有字符串都在一个map中。数据过多时查找肯定慢。可以把map分成26个,以首字母分类,放在不同的map中。#include #include #include #include using nam原创 2013-03-14 20:01:58 · 1674 阅读 · 0 评论 -
LInux 下网络编程之一UDP通信实例详解
建议大家用eclipse for c++开发啊~~~ 好用!至于具体的通信过程,网上一大堆。不解释,详细解释都在代码注释里了。客户端代码:client.cpp#include #include #include #include #include #include #include #include #include #include #原创 2013-04-07 17:02:05 · 2135 阅读 · 0 评论 -
C++ 获取凌晨/月初 时间戳
static unsigned long long getMonthTime() { time_t t = time(0); // get time now struct tm * zeroTm= localtime(&t); zeroTm->tm_hour = 0; zeroTm->tm_min = 0; zer原创 2016-08-11 15:38:57 · 4570 阅读 · 1 评论