随笔分类 - 算法
摘要:sort,用到了结构体第一种sort:282MS代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->#include<stdio.h>#include<algorithm>using namespace std;struct Array{ char data[30];}dna[20005];bool operator < (Array const& arr1, Array const& arr2)
阅读全文
摘要:摘自刘汝佳的《算法竞赛入门经典》PreOrder(T) = T 的根结点 + PreOrder(T 的左子树) + PreOrder(T 的右子树);InOrder(T) = InOrder(T 的左子树) + T 的根结点 + InOrder(T 的右子树);PostOrder(T) = PostOrder(T 的左子树) + PostOrder(T 的右子树) + T 的根结点;输入一颗二叉树的先序遍历和中序遍历,输出它的后序遍历。Sample InputSample Output代码也可以省略build()函数的最后一个参数;代码
阅读全文
摘要:最大的和 Time limit: 1000MS Memory limit: 32768K Total Submit: 77 Accepted: 39 Problem Description给出一串 a[1],a[2],a[3]......a[n], 计算出最大的字串和For example, given (6,-1,5,4,-7), the max sum in this sequence is 6 + (-1) + 5 + 4 = 14.Input第一行给出一个数字 T(1<=T<=20) 代表接下来的组数.接下来每 T 行,开始给出一个数组 N(1<=N<=1000
阅读全文
摘要:排列的字典序问题 Time limit: 1000MS Memory limit: 32768K Total Submit: 104 Accepted: 38 问题描述:n个元素{1,2,, n }有n!个不同的排列。将这n!个排列按字典序排列,并编号为0,1,…,n!-1。每个排列的编号为其字典序值。例如,当n=3时,6 个不同排列的字典序值如下:字典序值 01 2 3 4 5排列 123 132 213 231 312 321算法设计:给定n以及n个元素{1,2,, n }的一个排列,计算出这个排列的字典序值,以及按字典序排列的下一个排列。数据输入:输出元素个数n。接下来的1 行是n个
阅读全文
摘要:士兵站队问题 Time limit: 1000MS Memory limit: 32768K Total Submit: 154 Accepted: 76 问题描述:在一个划分成网格的操场上,n个士兵散乱地站在网格点上。网格点由整数坐标(x,y)表示。士兵们可以沿网格边上、下、左、右移动一步,但在同一时刻任一网格点上只能有一名士兵。按照军官的命令,士兵们要整齐地列成一个水平队列,即排列成(x,y),(x+1,y),…,(x+n-1,y)。如何选择x 和y的值才能使士兵们以最少的总移动步数排成一列。算法设计:计算使所有士兵排成一行需要的最少移动步数。数据输入:输入士兵数n,1<=n<
阅读全文
摘要:这是O(n^2)的算法:#include<stdio.h>int main(){ int n,i,k,max,lis[1001],num[1001]; while(scanf("%d",&n)!=EOF) { for(i=0;i<n;i++) { scanf("%d",&num[i]); lis[i]=1; } for(i=1;i<n;i++) for(k=0;k<i;k++) if(num[k]<=num[i]&&lis[i]<lis[k]+1) //当前数比之前数大&&
阅读全文
摘要:给你二个整数p和a,其中p是质数。求ap除以p后的余数。输入: 每一行包含a和p,p=0时结束输入,最后一行输入不处理。输出: 每一行输出所求的值。例子:In: 2 22 31 0Out:02Hint: 1 0时,因为p = 0, 结束输入。Source:WT用到费马小定理。若p为质数,则ap% p =a% p,a<0时,ap% p =a% p +p,(若(-a)%p==0),则ap% p = 0 )#include<stdio.h>int main(){int a,p;while(scanf("%d%d",&a,&p)!=EOF,p)a&
阅读全文
摘要:思想是这样的:比如求100,000以内素数个数,定义一个bool型变量(c里不能定义bool型),bool prime[100001](长度比10,000大1);当i%2==1时,prime[i]=true;否则,prime[i]=false;i=3,j=2*i,对下标为3的倍数的prime[j]赋false;i自增,重复第3步;total=0;if(prime[i]) total++。[代码]
阅读全文
摘要:http://acm.pku.edu.cn/JudgeOnline/problem?id=1163这是我第一次用动态规划来做题。很不熟练啊。从下往上依次考察(i,j)下面的较大数,并储存起来。[代码]再次写这个代码:[代码]
阅读全文
摘要:转自:http://mkd.lyge.cn/zhanzheng/a04/x3/015.htm举世闻名的中国剩余定理——兼谈南宋秦九韶及清朝黄宗宪工作从“鬼谷算”的猜岁数游戏谈起猜谜语这种民间游戏,在中国有几千年的历史了。可是你知道不知道还有一种猜岁数的游戏在一千多年前也曾是中国人民的一种游戏?让我们借想像的羽翼飞到那古老的年代,飞到那位于富庶肥沃的关中平原,那《诗经》所说:“径以渭蜀”的径水、渭水流域上的古城长安。长安是个像杜甫的诗歌所描写的:“渔阳豪侠地,击鼓吹笙竽,云帆转辽海,粳稻来东吴。越罗与楚练,照耀与台躯”一个很热闹繁华的城市。我们不单听到吹竽鼓瑟、击筑弹琴,也见到斗鸡走犬。而位于大
阅读全文

浙公网安备 33010602011771号