Arithmetic And Data Structure
文章平均质量分 59
luxuejuncarl
这个作者很懒,什么都没留下…
展开
-
POJ 1503 Integer Inquiry 解题报告
类型:高精度加法 总结几个较舒服的做法:1。输入字符串,在转换成整数的同时把串反转, 这样便于计算。如输入:1234存储:a[0]=4, a[1]=3, .....2。把字符串长度存在首个元素里,如a[0]。3。从MAX递减寻找非0数,开始输出,不用记录结果长度。这题wa了n次,只因为数组开小了,真不知道数据不符合题意也往上搬,害得人浪费时间。所以以后实在不行,可以试试原创 2007-06-06 02:28:00 · 2993 阅读 · 0 评论 -
ACM推荐题目
标 题: (zz)ACM题目推荐发信站: BBS 东篱采菊站 (Sun May 13 22:02:55 2007), 站内发信人: stonezhu(石头), 信区: Algorithm 标 题: ACM题目推荐 发信站: 瀚海星云 (2007年05月08日23:54:47 星期二), 站内信件 WWWPOST 推荐一些题目,希望对参与ICPC竞赛的同学有所帮助。 POJ上一些题目转载 2007-05-18 02:08:00 · 2197 阅读 · 0 评论 -
动态创建数组
一般的可以用malloc或new : 一维数组 int arr1[100]; 可以这样实现 int n = 100; int *arr1 = (int*)malloc(si原创 2007-05-20 01:13:00 · 994 阅读 · 0 评论 -
POJ推荐50题
校集训队的必做北大50题,必须完成才有资格申请加入集训队,拼了!POJ推荐50题 —— 参加06年BUPT ACM暑假集训前要求完成 POJ == 北京大学ACM在线评测系统 http://acm.pku.edu.cn/JudgeOnline 1. 标记 难 和 稍难的题目大家可以看看,思考一下,不做要求,当然有能力的同学可以直接切掉。 2. 标记为 A and B 的题目是比较相似的题目转载 2007-05-18 01:56:00 · 2975 阅读 · 0 评论 -
POJ 2551 Ones
#includeint main(){ int n, i, sum; while(scanf("%d", &n) != -1) { for(i=1,sum=1; sum%n; i++) { sum = (sum % n * 10) + 1; } printf("%d/n", i); }原创 2007-05-17 16:26:00 · 772 阅读 · 0 评论 -
POJ 2509 Peter's smokes
注意while(scanf("%d %d", &n, &k) == 2),如果是while(scanf("%d %d", &n, &k))则会ole#includeint main(){ int n, k, sum; while(scanf("%d %d", &n, &k) == 2) { sum = n; while(n >= k)原创 2007-05-16 21:02:00 · 1539 阅读 · 0 评论 -
POJ 2602 Superlong sums
大数加法#include#define MAX 1000000int a[2][MAX], sum[MAX];int main(){ int n, i, k=0, m; scanf("%d", &n); for(i=0; in; i++) { scanf("%d", &a[0][i]); scanf("%d", &a[1][i]);原创 2007-05-16 20:27:00 · 957 阅读 · 0 评论 -
POJ 2739 Sum of Consecutive Prime Numbers
把int prime[MAX];放在main里的时候一直runtime error放在main外就ac了#include#define MAX 10002int prime[MAX];int main(){ int i, j, n, k, sum; for(i=0; iMAX; i++) prime[i] = 1; for(i=2;原创 2007-05-16 01:54:00 · 1450 阅读 · 0 评论 -
POJ 2578 Keep on Truckin'
#includeint main(){ int a[3], i; for(i=0; i3; i++) scanf("%d", a+i); for(i=0; i3; i++) { if(a[i] 168) { printf("CRASH %d ", a[i]); break;原创 2007-05-16 22:27:00 · 931 阅读 · 0 评论 -
POJ 2521 How much did the businessman lose
#includeint main(){ int n, m, p, c, sum; while(scanf("%d %d %d %d", &n, &m, &p, &c)) { if(!n && !m && !p && !c) break; sum = n - m + p; printf("%d/n", sum);原创 2007-05-16 21:57:00 · 1001 阅读 · 0 评论 -
POJ 2665 Trees
#include#define MAX_M 5000int a[MAX_M][2];int main(){ int l, m, i, k; while(scanf("%d", &l) && scanf("%d", &m)) { if(!l && !m) break; k = 0; for(i=0; im; i++原创 2007-05-16 19:43:00 · 934 阅读 · 0 评论 -
POJ 2262 Goldbach's Conjecture
#include#define MAX 1000000int prime[MAX] = {0};int main(){ int i, j, a; prime[2] = 1; for(i=3; iMAX; i+=2) prime[i] = 1; for(i=2; iMAX/2; i++) { if(prime[i])原创 2007-05-16 00:31:00 · 1080 阅读 · 0 评论 -
POJ 2636 Electrical Outlets
#include#define MAX 10int a[MAX];int main(){ int n, k, i, sum; scanf("%d", &n); while(n--) { sum = 0; scanf("%d", &k); for(i=0; ik; i++) { scanf("%原创 2007-05-16 20:05:00 · 917 阅读 · 0 评论 -
POJ 2909 Goldbach's Conjecture
大数组最好定义成全局变量,不要放在main里(具体为什么,现在我也搞不清,好像是栈的原因,以后再研究,呵呵)#include#define MAX 32768int b[MAX]={0};int main(){ int a, i, j; b[2] = 1; for(i=3; iMAX; i += 2) b[i] = 1; for(i=2; iMA原创 2007-05-16 00:12:00 · 834 阅读 · 0 评论 -
POJ 3062 Celebrity jeopardy
main(a){ while (gets(&a))puts(&a);}原创 2007-05-15 01:13:00 · 1113 阅读 · 1 评论 -
Windows 进程的一生
# include # include # include //创建进程的克隆并赋予其ID值 void StartClone(int nCloneID) { //获取当前文件名 TCHAR szFilename[MAX_PATH]; ::GetModuleFileName(NULL,szFilename,MAX_PATH); //得到用于子进程的转载 2007-05-07 19:28:00 · 2219 阅读 · 0 评论 -
vc 下可以运行在设置项Project->Settings->Debug->Program arguments填参数
vc 下可以运行在设置项Project->Settings->Debug->Program arguments填参数原创 2007-05-07 11:37:00 · 2851 阅读 · 1 评论 -
POJ 2533 Longest Ordered Subsequence 解题报告
//考查点:动态规划(最长上升/不下降子序列 Longest Increasing Subsequence )。这题目是经典的DP题目,也可叫作LIS(Longest Increasing Subsequence)最长上升子序列 或者 最长不下降子序列 很基础的题目,有两种算法复杂度为O(n*logn)和O(n^2) 这题由于数据小,用后者O(n^2)即可 //思路: O(n^2)算原创 2007-05-20 01:01:00 · 2119 阅读 · 0 评论 -
POJ各题算法分类和题目推荐
POJ各题算法分类和题目推荐============================================按照ac的代码长度分类(主要参考最短代码和自己写的代码)短代码:0.01K--0.50K;中短代码:0.51K--1.00K;中等代码量:1.01K--2.00K;长代码:2.01K以上。短:1147、1163、1922、2211、2215、2229、2232、2234、2242转载 2007-05-18 02:01:00 · 4497 阅读 · 0 评论 -
POJ 2575 Jolly Jumpers 解题报告
简单题 #include#include#include#define MAX 3001int a[MAX];int cmp ( const void *a , const void *b ) { return *(int *)b - *(int *)a; } int main(){ int n, i; while(scanf("%d", &n) != EOF)原创 2007-06-04 02:17:00 · 2043 阅读 · 0 评论 -
POJ 1163 The Triangle 解题报告
算法1:递归设 f(i, j) 是从(i, j)点出发向下走的最长路径。f(i, j) = max( f(i+1, j), f(i+1, j+1) ).输出f(0, 0).code:#include #define MAX 101int triangle[MAX][MAX];int n;int longestPath(int i,int j);void main(){原创 2007-05-30 00:49:00 · 2558 阅读 · 0 评论 -
POJ 1088 滑雪 解题报告
算法:动态规划(记忆化搜索)用dp时,最好先想好递归的解法,再转换成记忆化搜索。#include#define MAX 101int height[MAX][MAX];int flag[MAX][MAX];int LongestLength(int i, int j, int r, int c){ int max = 0, a[4], k; if(flag[i][j] !=原创 2007-05-30 23:17:00 · 4087 阅读 · 3 评论 -
2007年百度程序设计大赛Astar初赛题目(第二场)
1.百度时间 Baidu的服务器上使用的不是北京时间,而是Baidu时间。Baidu时间的时分秒与北京时间相同,但是日期与北京时间不同,是用一个正整数表示从2000年1月1日开始经过了几天。 现在就请大家设计一个程序将北京时间转换为百度时间。在本题中,闰年的年份是400的倍数,或者是4的倍数但不是100的倍数。比如2000和8888均为闰年,但6100不是。 输入转载 2007-05-27 23:27:00 · 1684 阅读 · 0 评论 -
2007年百度程序设计大赛Astar初赛题目(第一场)
1.水果开会时段 每个百度工程师团队都有一笔还算丰裕的食品经费,足够每天购置多种水果。水果往往下午送达公司前台。前台的姐姐们只要看到同时出现五种或以上的水果,就称之为“水果开会”。 从搜索引擎切词的语法角度,只要两种水果的名字中有一个字相同就属于同样的类别。例如“小雪梨”和“大雪梨”是同一种水果,而“核桃”和“水蜜桃”也被认为是同一种水果。尤其要指出的是,如果有三种水果x原创 2007-05-27 16:53:00 · 1722 阅读 · 0 评论 -
关于“递归”与“非递归”的转换
尾递归(Tail-Recusive function)可以转换为循环什么是尾部递归?-参阅 精通递归程序设计。如何判断您的 JIT 能否转换尾递归:编译并运行如下程序(参照提高Java代码的性能),如果您的 JIT 编译器把尾递归调用转换成迭代,这个程序将无限期地运行下去。它所需的内存很小,而且不会随时间增加。如果 JIT 不做这种转换,程序将会很快耗尽堆栈空间并报告一个堆栈溢出错误。转载 2007-05-26 19:26:00 · 1472 阅读 · 1 评论 -
放苹果与整数划分问题(by幻星总结)
放苹果与整数划分问题(by幻星总结)以下均假设m>n,对于m情况请编程时自己注意设h(m,n)表示m个数分成n分,允许某分为0设g(m,n)表示m个数分成n分,不允许某分为0于是两者关系为h(m,n)=g(m+n,n)下面给出两种方法求h(m,n),g(m,n)关于自身的递归公式(一)利用h(m,n)=sum(g(m,i),i=1..n)(a)求h(m,n)的递归公式转载 2007-05-26 11:09:00 · 1383 阅读 · 2 评论 -
acm程序调试过程中freopen函数的使用
使用的调试环境为gdb, 编译器为gcc,g++。(服务器就是用的这个)每当做ACM题目的时候都是写好程序然后运行,输入题目中所给的测试数据,但是调试往往不是一次两次就能解决问题的。一般的题目还行。遇到像 Web Navigator 这样的有大量的输入的题目就头痛了。而freopen函数就提供了一种非常简单的解决方法。函数名:freopen声明:FILE *freopen( const char转载 2007-05-26 09:18:00 · 5285 阅读 · 0 评论 -
POJ 2707 Copier Reduction 解题报告
简单题,没什么可说的。只是表达百分数时,不知道这么用好不好,但是AC了,就没管那么多。#includeint main(){ int a[4], t1, t2, min1, min2; while(scanf("%d%d%d%d", a, a+1, a+2, a+3) != EOF) { if(!a[0] && !a[1] && !a[2] && !a[原创 2007-05-24 13:59:00 · 1232 阅读 · 0 评论 -
POJ 2719 Faulty Odometer 解题报告
想了很久,算了很久,最后看了一下Discuss,一言惊醒梦中人,九进制!其他的就不用多说了。。#include#includeint main(){ int n, m, i, mul, a[9]; while(scanf("%d", &n)) { if(n == 0) break; m = n; mems原创 2007-05-24 03:46:00 · 1484 阅读 · 0 评论 -
POJ 2159 Ancient Cipher 解题报告
substitution cipher (置换密码):Substitution cipher changes all occurrences of each letter to some other letter. Substitutes for all letters must be different. For some letters substitute letter may coin原创 2007-05-23 13:21:00 · 2792 阅读 · 1 评论 -
初学者看过来:简单谈谈 C/C++ 递归的思想,实现,以及和循环的关系。
很多初学者往往对递归迷惑不解,也在这上面花了不少的时间。其实教材上的例子很经典,只是它说的有一些唠叨了。初学者会看的头大的。编程是解决问题的,而现实中很多的问题都是比较简单的,没有象汉诺塔那么复杂。我们也不必追究递归到底是怎样实现的,我们只是要会用递归,会用递归来为我们解决一些问题,这就行了。 首先来看一个例子:有一个Febonacci序列: 1,1,2,转载 2007-05-26 20:10:00 · 2015 阅读 · 0 评论 -
POJ 1423 Big Number 解题报告
还以为是普通的高精度,结果Time Limit Exceed了。one integer 1 on each line. 这个数量级不可能AC了。#include#define MAX 100int main(){ int n, m, i, j, base, set; int a[MAX]; scanf("%d", &n); while(n--) {原创 2007-05-24 01:55:00 · 2357 阅读 · 0 评论 -
最全的acm资料web
http://oistorer.blogspot.com/ 其他链接http://www.vijos.cn/http://www.noi.org.cn/http://www.noi.org.cn/?id=2#http://it.nankai.edu.cn/acm/forum/dispbbs.asp?boardID=2&ID=221&page=1http://www.oifans.c转载 2007-05-26 10:30:00 · 2828 阅读 · 0 评论 -
POJ 2924 Gauß in Elementary School 解题报告
这道题用了__int64:if x and y is long(thats 32 bits integer in VC). Just __int64 a=(__int64)x*(__int64)y; #includeint main(){ int n, i, l, d, a[2]; __int64 sum;原创 2007-05-25 02:18:00 · 987 阅读 · 0 评论 -
POJ 2769 Reduced ID Numbers 解题报告
暴力AC了...#include#define MAX 300int s[MAX];int m[MAX];int main(){ int n, g, i, j, k; scanf("%d", &n); while(n--) { scanf("%d", &g); memset(s, 0, sizeof(s)); memset(原创 2007-05-24 15:12:00 · 1150 阅读 · 0 评论 -
提示“_beginthread“ undeclared identifier
提示“_beginthread“ undeclared identifierproject setting:(Alt+F7) C/C++ --> Category/Code Generation --> Use Runtime Library: 选择MultiThreaded原创 2007-05-07 19:14:00 · 2028 阅读 · 0 评论 -
POJ 1316 Self Numbers
函数的调用会花掉很多时间。定义一个数组,充分利用数组的下标和值。如int a[1000],把下标和值都利用上。#include#define MAX 10003int main(){ int i, b, sum, a[MAX]={0}; for(i=1; iMAX; i++) { b = sum = i; while(b)原创 2007-05-03 01:42:00 · 1847 阅读 · 0 评论 -
PKU 1006 Biorhythms
若某数x分别被d1、、…、dn除得的余数为r1、r2、…、rn,则可表示为下式:x=R1r1+R2r2+…+Rnrn+RD其中R1是d2、d3、…、dn的公倍数,而且被d1除,余数为1;R1 、R2…、Rn是d1、d2、…、dn-1的公倍数,而且被dn除,余数为1;D是d1、d2、…、的最小公倍数;R是任意整数,可根据实际需要决定;且d1、、…、必须互质,以保证每个Ri(i=1,2,…,n)都能求原创 2007-04-23 00:51:00 · 2073 阅读 · 6 评论 -
多版本pku题目分类及算法分类
http://www.neucs.com/blog/article.asp?id=112转载 2007-04-22 22:47:00 · 775 阅读 · 0 评论 -
中国剩余定理
民间传说着一则故事——“韩信点兵”。秦朝末年,楚汉相争。一次,韩信将1500名将士与楚王大将李锋交战。苦战一场,楚军不敌,败退回营,汉军也死伤四五百人,于是韩信整顿兵马也返回大本营。当行至一山坡,忽有后军来报,说有楚军骑兵追来。只见远方尘土飞扬,杀声震天。汉军本来已十分疲惫,这时队伍大哗。韩信兵马到坡顶,见来敌不足五百骑,便急速点兵迎敌。他命令士兵3人一排,结果多出2名;接着命令士兵5人一排,结转载 2007-04-22 22:13:00 · 1196 阅读 · 0 评论