- 博客(29)
- 资源 (1)
- 收藏
- 关注
转载 stringstream
<br /><br />stringstream的构造函数原形如下: <br /><br /> stringstream::stringstream(string str);<br /> 示例代码如下:<br /> #include <iostream> <br />#include <sstream> <br />#include <string> <br />using namespace std; <br /> <br />int main() <br />{ <br />
2010-08-18 16:53:00
490
转载 线段树 解题
把问题简化一下:在自然数,且所有的数不大于30000的范围内讨论一个问题:现在已知n条线段,把端点依次输入告诉你,然后有m个询问,每个询问输入一个点,要求这个点在多少条线段上出现过;最基本的解法当然就是读一个点,就把所有线段比一下,看看在不在线段中;每次询问都要把n条线段查一次,那么m次询问,就要运算m*n次,复杂度就是O(m*n)这道题m和n都是30000,那么计算量达到了10^9;而计算机1秒的计算量大约是10^8的数量级,所以这种方法无论怎么优化都是超时-----因为n条线段是固定的,所以某种程度上说
2010-08-06 11:28:00
509
原创 最小生成树
<br />【问题描述】<br />现有一设计师要在n(0<n<=1000)个城市之间建立通信网络,每两个城市之间建设通信线路的费用和城市的数目是已知的,现在他要你帮他找到建设通信网络要花费的最小费用。(注:通信网络必须连接到所有的城市)<br />【输入要求】<br />输入包含多组测试数据,每组测试数据的第一行是城市的个数n,接下来的每一行包括三个数据分别是两个城市的编号和它们之间的距离,每组数据测试以三个0结束。<br />【输出要求】<br />对于每组输入数据,输出建设通信网络的最小花费,每个测试
2010-06-26 21:14:00
481
原创 旅费问题
2、[问题描述] 某售货员要到N个城市去推销商品,已知各城市之间的路程(或旅费)。他从S出发,经过每个城市一次,最后回到S,城市之间的路径是双向的,使总的路程最小。(为简化问题,假设题中S=1出发)[输入要求] 有多组测试数据,第一行输入N,(0[输出要求] 每组测试数据对应一个输出,输出最小路程。[样例输入]4 121 2 101 3 151 4 20 2 1 52 3 92 4 103 1 63 2 13 3 4 124
2010-06-26 18:37:00
626
原创 有向图 两点间的最短距离
1、[问题描述]已知有向图有12个顶点,21条边,起点为S,终点为E,求从S到E的最小成本花费W。(如图)[输入要求]有多组测试数据,第一行输入S(1[输出要求]每组测试数据对应一个输出,输出S到终点E最小成本花费W[样例输入]12[样例输出]1610#includeusing namespace std;int arr[12+1][12+1];int count =0;int total[100];void init(){ memset(arr,0,sizeof(ar
2010-06-26 18:33:00
3034
1
转载 皇后问题(c语言版)
<br />#include <stdio.h>#include <stdlib.h> #define max 8 int queen[max], sum=0; /* max为棋盘最大坐标 */ void show() /* 输出所有皇后的坐标 */{ int i; for(i = 0; i < max; i++) { printf("(%d,%d) ", i, queen[i]); } printf
2010-06-23 22:44:00
724
原创 会场安排
内容:[问题描述] 假设要在足够多的会场里安排一批活动,并希望使用尽可能少的会场,请写一个程序计算出最小的会场个数。[输入要求] 有多组测试数据,第一行有1 个正整数,表示有k 个待安排的活动。接下来的k 行中,每行有2 个正整数,分别表示k 个待安排的活动开始时间和结束时间。时间以0 点开始的分钟计,所有正整数都在100000以内。[输出要求] 每组测试数据对应一个输出,计算出最小的会场个数。[样例输入]5
2010-06-22 21:33:00
577
转载 皇后问题解一
[问题描述]求出在nXn的棋盘上,放置n(1[输入要求]有多组测试数据,第一行输入n皇后,每一个输入占一行。[输出要求]每组测试数据对应一个输出,如果存在n个皇后不能相互攻击的布局,则输出的所有可能的布局数,否则输出0。[输入]582[输出]10920/* i(x)为行的表示,r(y)为列的标示即第几个皇后。 某一个位置的右分支存在一函数 y-x(r-i)=常数(|d1|=0)*/#includeusing namespace std;const int Max
2010-06-20 16:50:00
768
1
原创 qq 号码简单分类
用QQ申请器申请的号码太多了,想简单的整理一下,9位数的分一起,10位数的分一起,特用c语言编写了一个分类的代码;QQ.txt (文本):872414219----IQSHW.COM----申请日期: 2010-6-16792370125----yunduane----申请日期: 2010-6-161486309012----yunduane----申请日期: 2010-6-161455510933----yunduane----申请日期: 2010-6-161430552202----yunduan
2010-06-18 21:44:00
1082
转载 文件加密 解密
<br />#include<stdio.h> #include<stdlib.h> #include<conio.h> #include<string.h> void dofile(char *in_fname,char *pwd,char *out_fname);/*对文件进行加密的具体函数*/ main(int argc,char *argv[])/*定义main()函数的命令行参数*/ { char in_fname[30];/*用户输入的要加密的文件名*/
2010-06-18 10:55:00
542
原创 因子和阶乘
<br />/*输入正整数n(2<=n<=100),把阶乘n!=1x2x3x...xn分解成素因子相乘的形式,从小大输出各个素数(2,3,5,...)的指数*例如825=3x5^2x11应表示成(0,1,2,0,1),表示分别有0、1、2、0、1个2、3、5、7、11*/#include<stdio.h>#include<string.h>int is_prime(int n){ for(int i=2;i*i<=n;i++) { if(n%i==0) return
2010-06-17 18:06:00
576
原创 cantor 数表
<br />Cantor表<br /> 把分子和分母均小于108的分数按下面的办法排成一个数表。<br />1/2→1/2 1/3→1/4 1/5 ……<br /> ↙ ↗ ↙ ↗<br />2/1 2/2 2/3 2/4 2/5 ……<br /> ↓↗ ↙ ↗<br />3/1 3/2 3/3 3/4 3/5 ……<br /> ↙ ↗<br />4/1 4/2 4/3 4/4 4/5 ……<br /> ↓↗<br />5/1 5/2 ……<
2010-06-11 12:20:00
1583
原创 整数分解
<br />题目描述:<br />一个正整数有可能可以被表示为n(n>;=2)个连续正整数之和,如:<br />15=1+2+3+4+5<br />15=4+5+6<br />15=7+8<br />请编写程序,根据输入的任何一个正整数,找出符合这种要求的所有连续正整数序列。<br />输入数据:一个正整数,以命令行参数的形式提供给程序。<br />输出数据:在标准输出上打印出符合题目描述的全部正整数序列,每行一个序列,每个序列都从该序列的最小正整数开始、以从小到大的顺序打印。如果结果有多个序列,按各序
2010-06-05 23:05:00
952
原创 归并排序
<br />#include <iostream>using namespace std;#define LEN 100int a[LEN];void merge(int start, int mid, int end){ int n1 = mid - start + 1; int n2 = end - mid; int* left = new int[n1]; int* right = new int[n2]; int i, j, k; for (i = 0;
2010-06-05 23:02:00
367
原创 阶乘的精确值
<br />#include<iostream>#include<string>using namespace std;const int maxn=3000;int f[maxn];int main(){int n;int i,j; cin>>n; memset(f,0,sizeof(f)); f[0]=1; for(i=2;i<=n;i++) { int c=0; for( j=0;j<maxn;j+
2010-06-05 22:59:00
791
原创 一个整数倒序输出(2种方法)
<br />#include<iostream>#include<string>using namespace std;int main(){int x,t,m=0;int i;char s[10]; cin>>x;t=x;while(t>0){ m=m*10+t%10 ; t=t/10; } cout<<m<<endl; /*法2:用sprintf()函数*/ sprintf(s,"%d",x);
2010-06-05 22:55:00
4811
原创 6174问题
<br />/*--------6174问题-----------<br />输入一个n位数,把所有数字从大到小排序得到a,从小到大得到b,然后用a-b替换原来这个数<br />并且继续操作。1234 、4321-1234=3087、8730-378=8352、8532-2358=6174 <br />样例输入:1234<br />样例输出:1234->3087->8352->6074->6174<br />--------------------------------------------------
2010-06-05 22:53:00
3323
原创 哈夫曼编码和译码(老师给的样题样解)
标题: 作业六----哈夫曼编码和译码 内容: [问题描述]有两个城市要进行通讯,已知他们通讯内容为字符集C且字符集中的每一个字符c的频率是f(c).现在要你给通讯内容编码使通讯信息量最少,并输出字符集C中每个字符的编码长度。[输入要求]有多组测试数据,每组数据的第一行是字符集C中的字符个数n(0n=1000),接下来的n行每行含有字符c和字符的频率f(c)(0f(c)=1000)。 [输出要求]对每组数据,按输入给定的字符集的顺序每行输出一个字符c和它的编码长度,中间用一个空格隔开。 [样例输入]4A 1
2010-06-05 22:21:00
1419
原创 完全背包问题
贪心背包问题一、问题描述 已知一个容量为M的包和n件物品, 每件物品的重量为wi, 效益值为pi. 若将物品i的一部分0≤xi≤1装入包中, 背包可得到pixi的效益值增量. 要求找到一种装入物品的方案, 在不超过包的总容量前提下, 使包获得最大效益值, 即求使目标函数 最大化, 且满足约束条件 的向量x, 0≤xi≤1, pi>0, wi>0, 0≤i≤n. 例 已知n=3, M=20, p=(25, 24, 15), w=(18, 15, 10), 其中的四个
2010-06-05 17:43:00
815
原创 01 背包问题
动态规划是用空间换时间的一种方法的抽象。其关键是发现子问题和记录其结果。然后利用这些结果减轻运算量。比如01背包问题。/* 一个旅行者有一个最多能用M公斤的背包,现在有N件物品,它们的重量分别是W1,W2,...,Wn,它们的价值分别为P1,P2,...,Pn.若每种物品只有一件求旅行者能获得最大总价值。输入格式:M,NW1,P1W2,P2......输出格式: X */因为背包最大容量M未知。所以,我们的程序要从1到M一个一个的试。比如,开始任选N件物品的一个。看对应M的背包,能不能放进去,如果能放进去,
2010-06-05 17:20:00
458
原创 哈夫曼试做实验
#include#includeusing namespace std;typedef struct TreeNode{ char c; int w; int parent; int right; int left; int tag; char * code;}Node;void Find(Node * tree, int n, int & m1, int & m2){ m1 = -1; while(tree[++ m1].tag != 0); m2 = m1; while(tree[++ m2].tag
2010-06-05 16:50:00
391
转载 深入理解sizeof
深入理解sizeof作者:房秉毅 最近在论坛里总有人问关于sizeof的问题,并且本人对这个问题也一直没有得到很好的解决,索性今天对它来个较为详细的总结,同时结合strlen进行比较,如果能对大家有点点帮助,这是我最大的欣慰了。一、好首先看看sizeof和strlen在MSDN上的定义:首先看一MSDN上如何对sizeof进行定义的:sizeof Operator
2010-05-25 11:15:00
389
原创 求最长回文子串
/*最长回文子串*/ #include#include#include#define MAXN 5000+10char buf[MAXN],s[MAXN];int p[MAXN];int main(){ int n,m=0,max=0,x,y; int i,j; fgets(buf,sizeof(s),stdin); n=strlen(b
2010-05-11 23:06:00
1076
原创 float与double的范围和精度
1 范围float和double的范围是由指数的位数来决定的。float的指数位有8位,而double的指数位有11位,分布如下:float:1bit(符号位)8bits(指数位)23bits(尾数位)double:1bit(符号位)11bits(指数位)
2010-04-23 09:39:00
148204
1
转载 递归函数的调用过程和方法
今天我们和大家一起来学习一下递归函数的调用过程和方法,下面是个关于递归调用简单但是很能说明问题的例子: /*递归例子*/ #include void up_and_down(int); int main(void) { up_and_down(1); return 0; } void up_and_down(int n) { printf(/"Level %d:n lo
2009-10-22 18:18:00
3488
原创 OPENFILENAME结构体
OPENFILENAME结构包含了GetOpenFileName和GetSaveFileName函数用来初始化打开或另存为对话框的信息。在用户关闭对话框后,系统返回关于用户的选择信息到这个结构中。typedef struct tagOFN { DWORD lStructSize; HWND hwndOwner; HINSTANCE
2009-10-19 17:19:00
1095
原创 string类对象的建立与初始化
/*string类对象的建立与初始化*/#include#includeusing namespace std;void main(){ char * s1="123456"; string s2; string s3("abcde"); string s4(s3); string s5(s3,0,3); string s6(s1,3); string s7(6,A); cout cout
2009-10-15 16:30:00
453
原创 c++编写职员信息(姓名排序)的类
#include#includeusing namespace std;class staff{private: string name; string sex; int age; long num; string address; staff *next; staff *head; staff *p; staff *newp;public: staff() { head=newp=this;
2009-05-24 11:55:00
1808
原创 Visual C++开发工具与调试技巧整理
1、如何在Release状态下进行调试Project->Setting=>ProjectSetting对话框,选择Release状态。C/C++标签中的Category选General,Optimizations选Disable(Debug),Debut info选Program Data
2009-05-08 13:32:00
394
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人