- 博客(24)
- 收藏
- 关注
原创 acm分类
acm.pku.edu.cn1、 排序1423, 1694, 1723, 1727, 1763, 1788, 1828, 1838, 1840, 2201, 2376, 2377, 2380, 1318, 1877, 1928, 1971, 1974, 1990, 2001, 2002, 2092, 2379,1002(需要字符处理,排序用快排即可) 1007(稳定的排序) 2159(题意较难懂)
2010-04-26 22:04:00 378
原创 杭电动态规划习题
Robberies http://acm.hdu.edu.cn/showproblem.php?pid=2955 背包;第一次做的时候把概率当做背包(放大100000倍化为整数):在此范围内最多能抢多少钱 最脑残的是把总的概率以为是抢N家银行的概率之和… 把状态转移方程写成了f[j]=max{f[j],f[j-q[i].v]+q[i].money}(f[j]表示在概率j之下能抢的大洋);正确的方程
2010-04-25 21:20:00 1819
原创 几种算法
几种算法2010-01-22 22:17 NO.1 贪心算法 1 在对问题求解时,总是作出在当前看来是最好的选择。也就是说,不从整体上加以考虑,它所作出的仅仅是在某种意义上的局部最优解(是否是全局最优,需要证明)。2 基本步骤:1、从问题的某个初始解出发。2、采用循环语句,当可以向求解目标
2010-04-25 21:19:00 453
原创 hd1005
#include int main(){ int f[100]; long A,B,n; int r,j; f[0]=f[1]=1; scanf("%d%d%ld",&A,&B,&n);//cin >> A >> B >> n; while(A&&B&&n) { int i=2; r = 7; while(1) { if(i==n) break; f[i] = (A*f[i-
2010-04-25 16:17:00 724
原创 hd1003
#includeint main(){ int n,m,i,j,k; int a[100001]; int st,end; int maxsum,thissum; scanf("%d",&n); for(k=1;k { scanf("%d",&m); for(i=0;i { scanf("%d",&a[i]); } for(i=0;i { thissum = 0;
2010-04-25 16:07:00 570
原创 汉字
#include #include using namespace std;int first(unsigned char ch) { if(ch >= 0xb0 && ch return 1; else return 0;}int second(unsigned char ch) { if(ch >= 0xa1 && ch return 1; else return 0;}v
2010-04-24 21:31:00 434
原创 input and putput
ACM竞赛之输入输出描述字符串的输入输出处理。 输入第一行是一个正整数N,最大为100。之后是多行字符串(行数大于N), 每一行字符串可能含有空格,字符数不超过1000。输出先将输入中的前N行字符串(可能含有空格)原样输出,再将余下的字符串(不含有空格)以空格或回车分割依次按行输出。每行输出之间输出一个空行。样例输入2www.njupt.edu.cn NU
2010-04-24 21:30:00 685
原创 ACM输入输出
ACM竞赛之输入输出描述字符串的输入输出处理。 输入第一行是一个正整数N,最大为100。之后是多行字符串(行数大于N), 每一行字符串可能含有空格,字符数不超过1000。输出先将输入中的前N行字符串(可能含有空格)原样输出,再将余下的字符串(不含有空格)以空格或回车分割依次按行输出。每行输出之间输出一个空行。样例输入2www.njupt.edu.cn NU
2010-04-21 17:14:00 2355
原创 信息数字化2
题目1四名专家对四款赛车进行了评论:A说:2号赛车是最好的。B说:4号赛车是最好的。C说:3号赛车不是最好的。D说:B说错了。事实上只有一款赛车最佳,且只有一名专家的评论是正确的。算法思想:有4个bool型的数值相加,当且仅当只有一个正确时,即有1个等于1.其他3个等于0,这时表示只有一位专家说对了,这 是输出的m就是最好的赛车。试用C语言编程求解: 1)#inclu
2010-04-11 17:58:00 755
原创 第二大的数
#includevoid main(){ int find_sec_max(int data[],int count); int a[] = {2,4,6,8,7,2,5}; printf("%d",find_sec_max(a,5));}static int MINNUMBER = -32767;int find_sec_max( int data[] , int count)//
2010-04-11 17:57:00 441
原创 矩阵的算法
(1)矩阵的加、减运算 C(i,j)=a(i,j)+b(i,j) 加法 C(i,j)=a(i,j)-b(i,j) 减法 (2)矩阵相乘 (矩阵A有M*L个元素,矩阵B有L*N个元素,则矩阵C=A*B有M*N个元素)。矩阵C中任一元素 (i=1,2,…,m; j=1,2,…,n) #define M 2 #define L 4 #define N 3 void mv(int a[M][L], int
2010-04-11 17:56:00 695
原创 歌巴德猜想
任意一个大于等于6的偶数都可以分解为两个素数之和) 基本思想:n为大于等于6的任一偶数,可分解为n1和n2两个数,分别检查n1和n2是否为素数,如都是,则为一组解。如n1不是素数,就不必再检查n2是否素数。先从n1=3开始,检验n1和n2(n2=N-n1)是否素数。然后使n1+2 再检验n1、n2是否素数,… 直到n1=n/2为止。 利用上面的prime函数,验证哥德巴赫猜想的程序代码如下
2010-04-11 17:55:00 917
原创 最大子序列
#includeint MaxSubSum(int a[],int n){ int i,j; int seqstart,seqend; int maxsum,thissum; for(i=0;i { thissum = 0; for(j=i;j { thissum += a[j]; if(thissum>maxsum) { maxsum = thissum; seqs
2010-04-10 15:19:00 282
原创 Builder--EnumWindows
//---------------------------------------------------------------------------#include #pragma hdrstop#include "Unit1.h"//---------------------------------------------------------------------------
2010-04-10 15:18:00 393
原创 图的邻接表
#include#include#define MAX 20struct node{ int data; struct graph *next;};struct Graph{ struct node array[MAX]; int vexnum,arcnum;};void Create_Graph(struct Graph *G){ int i,j; int Visited[MAX]; struc
2010-04-10 15:16:00 270
原创 文件读写
#include#includevoid OpenFile(char filename[],char fcopyname[]){ char ch; char a[100]; FILE *p,*q; p = fopen(filename,"w"); printf("input a string:/n"); scanf("%s",a); q = fopen(fcopyname,"wt"); if(!q
2010-04-10 15:15:00 257
原创 汉诺塔
#includevoid Hano(int n,int a,int b,int c){ if(n==1) { printf("%c->%c/n",a,b); } else { Hano(n-1,a,c,b); printf("%c->%c/n",a,c); Hano(n-1,b,a,c); }}void main(){ int n; char a,b,c; print
2010-04-10 15:14:00 312
原创 动态数组(指针)
#include#include#define max 50struct array{ int *base; int length;};void main(){ int count,*p,i,n; struct array *s; s = (struct array *)malloc(sizeof(struct array)*max); while(scanf("%d",&count)==1) {
2010-04-10 15:14:00 415
原创 信息数字化
#includevoid main(){ int x; for(x=1;x { if(((x!=1)+(x==3)+(x==4)+(x!=4))==3) { printf("%c是小偷",x+64); break; } }}
2010-04-10 15:13:00 398
原创 八皇后问题
#include#include#define MAX 8 //8*8的棋盘int board[MAX];void show_result(){ int i; for(i=0;i printf("(%d,%d)",i,board[i]); printf("/n");}//检查是否在同一直线上int check_cross(int n){ int i; for(i=0;i { if(boar
2010-04-10 15:12:00 280
原创 动态规划01
#includevoid main(){ int i,j; int a[10][10][3]; int n; printf("input a number n:/n"); scanf("%d",&n); for(i=1;i { for(j=1;j { printf("input a number:/n"); scanf("%d",&a[i][j][1]); a[i][j][2] =
2010-04-10 15:07:00 255
原创 ProcessCreate
// 01CreateProcess.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include#includeint main(int argc, char* argv[]){ printf("Hello World!/n"); char szCommand[] = "cmd"
2010-04-10 15:06:00 348
原创 ProcessList
// 01ProcessList.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include#include#includeint main(int argc, char* argv[]){ PROCESSENTRY32 pe32; pe32.dwSize = sizeof
2010-04-10 15:04:00 307
原创 日历系统
#include#include#includeint main(){ int year,month,day=1,i,j,d,data,e; char h; printf("/n/n/t * 显示日历 * /n"); printf("/n/t-----------------------/n"); printf("/t请
2010-04-10 15:02:00 490
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人