上一页 1 ··· 5 6 7 8 9 10 11 下一页
  2012年3月6日
摘要: 这道dp题主要理解好题意:题中给的是按事项顺序的时间排列,而你要求的最长公共子序列是按时间顺序的事项排列,所以给你的排列要转化一下:例如:103 1 2 4 9 5 10 6 8 7//意思是:1事项在第三个时间位置发生,2事项在第一个时间发生以此类推:转化为:2 3 1 4 6 8 10 9 5 71 2 3 4 5 6 7 8 9 104 7 2 3 10 6 9 1 5 83 1 2 4 9 5 10 6 8 72 10 1 3 8 4 9 5 7 6代码如下:#include<stdio.h>#include<string.h>#define MAXN 20+5 阅读全文
posted @ 2012-03-06 16:06 BFP 阅读(821) 评论(0) 推荐(1) 编辑
  2012年3月2日
摘要: 本题是双塔问题,主要考察了最长公共子序列的知识,是我做动规的第一题,动规题重在思路,而考虑的重点就是状态转移方程,本题所代表的一类题主要考虑的状态方程如下:什么时候:f[i][j] = f[i-1][j-1] +1;什么时候:f[i][j] = f[i-1][j];什么时候:f[i][j] = f[i][j-1];考虑好了这个,题目也就解出来了。。。。代码如下:#include<stdio.h>#include<string.h>#define MAXN 100 + 10int a[MAXN], b[MAXN], f[MAXN][MAXN];int N1, N2, ma 阅读全文
posted @ 2012-03-02 15:21 BFP 阅读(338) 评论(0) 推荐(0) 编辑
  2012年3月1日
摘要: 什么也不说了,哗哗的。。。。(数据尽量考虑全面):代码如下:#include<stdio.h>#include<string.h>#define MAXN 200000char a[MAXN], f[2];long long s[MAXN];long long x, y;void solve(){ memset(s,0,sizeof(s)); int len = strlen(a); int p = -1; y = 0; for(int i = 0; i < len; i ++) { y = y *10 + (a[i] - '0');//pri.. 阅读全文
posted @ 2012-03-01 00:21 BFP 阅读(214) 评论(0) 推荐(0) 编辑
  2012年2月29日
摘要: 取幂运算:本题考查了浮点数高精度取幂运算,题目很简单,我的思路是浮点数作积运算小数点的位数很重要,而积的小数点的位数等于因子的小数点的位数之和,知道这一点就确定了小数点的位置了,之后再进行前后去零处理(题目要求),即可。代码如下(有待优化):#include<stdio.h>#include<string.h>#define MAXN 20000char a[7];int n, num;int A_1[MAXN], A[6], s[MAXN];void solve(){ int p = 5; memset(A_1,0,sizeof(A_1)); for(int i = 阅读全文
posted @ 2012-02-29 21:30 BFP 阅读(528) 评论(0) 推荐(0) 编辑
  2012年2月28日
摘要: 本题主要是作了个高精度加法,乘法运算。代码还够长,题中我忽略了sscanf()得用法,要注意一些。还有就是复杂度的计算在这里显得重要了些,还得在这方面加把劲。代码如下(C/C++):#include<stdio.h>#include<string.h>#define MAXN 20000char a[MAXN], b[MAXN],s[MAXN],y[2];int A[MAXN], B[MAXN], S[MAXN];void decide(){long long a1, b1, s1; sscanf(a,"%lld",&a1);sscanf(b 阅读全文
posted @ 2012-02-28 13:02 BFP 阅读(674) 评论(0) 推荐(0) 编辑
  2012年1月11日
摘要: 没想到这样一个水题也把我憋了这么久,唉,方法很简单把因‘<’'>'号分开的几部分字符串分别放在不同的数组里,输出时,第一行忽略<>号输出,第二行先输出...前面的,后面的变换一下第一行的字符串顺序输出就可以了。困住我的地方:测试组数的输入问题,评测之后出现runtime error。while(gets(num) != NULL) { sscanf(num,"%d",&n);开始时我定义了char n;用while(gets(&n) != NULL);之后问了斌哥,知道了这样只能读一个字符,也就是测试组数只能是个位数。 阅读全文
posted @ 2012-01-11 14:25 BFP 阅读(422) 评论(0) 推荐(0) 编辑
  2011年12月19日
摘要: 将数学运算过程程序化,注意地址的变动,缩位进位就可以啦!#include<stdio.h>#include<string.h>#define MAXN1 250 + 10#define MAXN2 500 + 10char s1[MAXN1], s2[MAXN1];int num[MAXN2],num1[MAXN1],num2[MAXN1];void solve(){ int len1 = strlen(s1); for(int i = 0; i < len1; i ++) num1[i] = s1[len1-i-1] - '0'; int len 阅读全文
posted @ 2011-12-19 23:55 BFP 阅读(322) 评论(0) 推荐(0) 编辑
摘要: 这道题憋了好久,题很简单,错在了输出格式:每行之间有空格 judge后wrong answer,值得注意。#include<stdio.h>#include<string.h>char s[25];int palin(char* s){ int len = strlen(s); for(int i = 0; i < len/2; i ++) if(s[i] != s[len-1-i])return 0; return 1;}int mirr(char* s){ char s1[40]="ABCDEHIJKLMNOPQRSTUVWXYZ1234567... 阅读全文
posted @ 2011-12-19 22:54 BFP 阅读(559) 评论(1) 推荐(1) 编辑
摘要: 很水的题。。。思路:这么长的数,首先要把他看成是字符串,存在一个字符数组里。(可不可以把它看成紧挨着的N数呢,每次读一个数直接进行加运算,最后的零没法处理,还没想到),让后把字符转换成数字存在整数数组里面,在里面进行运算。#include<string.h>//#include<stdlib.h>#include<stdio.h>#define MAXN 100 + 10char s[MAXN];int num[MAXN];void solve(){ int len = strlen(s); for(int i = 0; i < len; i ++) 阅读全文
posted @ 2011-12-19 22:53 BFP 阅读(633) 评论(1) 推荐(0) 编辑
  2011年12月3日
摘要: int数据类型的位数为16位,short int数据类型的位数也是16位。而long int的位数为32位,可用来存储比较大的整数。short int 和 long int可以缩写为short 和 long。 C语言中的整型数据类型int、short int 和 long int名称全称类型说明符缩写类型说明符位数 范围整型intint16位-32768至+32767无符号整型unsigned intunsigned16位0 至 65,535短整型short intshort16位-32768至+32767无符号短整型unsigned short int unsigned short16位0 阅读全文
posted @ 2011-12-03 15:41 BFP 阅读(1013) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 下一页