随笔分类 - ACM
摘要:Common SubsequenceTime Limit: 1000MSMemory Limit: 10000KTotal Submissions: 32971Accepted: 12925DescriptionA subsequence of a given sequence is the given sequence with some elements (possible none) left out. Given a sequence X = < x1, x2, ..., xm > another sequence Z = < z1, z2, ..., zk >
阅读全文
摘要:开心的mdd时间限制:1000 ms | 内存限制:65535 KB难度:3描述himdd有一天闲着无聊,随手拿了一本书,随手翻到一页,上面描述了一个神奇的问题,貌似是一个和矩阵有关的东西。给出三个矩阵和其行列A1(10*100),A2(100*5),A3(5*50)。现在himdd要算出计算矩阵所要的乘法次数,他发现不同的计算次序,所要的乘法次数也不一样,如:(A1*A2)*A3 : 10*100*5+5*10*50=7500;A1*(A2*A3) : 5*100*50+10*100*50 =75000;他想知道计算矩阵所要的最少乘法次数是多少,很快一个解法就诞生了,有点小happy~~现在
阅读全文
摘要:脱氧核糖核酸即常说的DNA,是一类带有遗传信息的生物大分子。它由4种主要的脱氧核苷酸(dAMP、dGMP、dCMT和dTMP)通过磷酸二酯键连接而成。这4种核苷酸可以分别记为:A、G、C、T。DNA携带的遗传信息可以用形如:AGGTCGACTCCA.... 的串来表示。DNA在转录复制的过程中可能会发生随机的偏差,这才最终造就了生物的多样性。为了简化问题,我们假设,DNA在复制的时候可能出现的偏差是(理论上,对每个碱基被复制时,都可能出现偏差): 1. 漏掉某个脱氧核苷酸。例如把 AGGT 复制成为:AGT2. 错码,例如把 AGGT 复制成了:AGCT3. 重码,例如把 AGGT 复制成了.
阅读全文
摘要:AGTCTime Limit: 1000MSMemory Limit: 65536KTotal Submissions: 7934Accepted: 3147DescriptionLet x and y be two strings over some finite alphabet A. We would like to transform x into y allowing only operations given below:Deletion: a letter in x is missing in y at a corresponding position.Insertion: a
阅读全文
摘要:1 #include<stdio.h> 2 3 int n,l; 4 char s[100]; 5 6 int dfs(int cur) 7 { 8 int i,j,ok,equal,k; 9 if(cur==n)10 {11 for(i=0;i<n;i++)12 printf("%c",'A'+s[i]);13 printf("\n");14 return 0;15 }16 for(i=0;i<l;i++)17 {18 s[cur]=i;19 ...
阅读全文
摘要:/* * biao.cpp * * Created on: 2011-11-25 * Author: allenjin */ #include#include using namespace std; template class Stack{ //自定义堆栈公式化描述 pub...
阅读全文
摘要:首先看看南阳理工17题:单调递增最长子序列时间限制:3000ms | 内存限制:65535KB难度:4描述求一个字符串的最长递增子序列的长度如:dabdbf最长递增子序列就是abdf,长度为4输入第一行一个整数0<n<20,表示有n个字符串要处理随后的n行,每行有一个字符串,该字符串的长度不会超过10000输出输出字符串的最长递增子序列的长度样例输入3aaaababcabklmncdefg样例输出137#include<stdio.h>#include<string.h>int main(){ int i,j,n,m,b[10010],t; char a[1
阅读全文
摘要:1.先来分析一维的:#include<stdio.h>int main(){ int t,m,n,sum,maxSum; scanf("%d",&m); while(m--) { scanf("%d%d",&n,&sum); maxSum=sum; while(--n) { scanf("%d",&t); if(sum<0) sum=t; else sum+=t; if(maxSum<sum) maxSum=sum; ...
阅读全文
摘要:街区最短路径问题时间限制:3000 ms | 内存限制:65535 KB难度:4描述一个街区有很多住户,街区的街道只能为东西、南北两种方向。住户只可以沿着街道行走。各个街道之间的间隔相等。用(x,y)来表示住户坐在的街区。例如(4,20),表示用户在东西方向第4个街道,南北方向第20个街道。现在要建一个邮局,使得各个住户到邮局的距离之和最少。求现在这个邮局应该建在那个地方使得所有住户距离之和最小;输入第一行一个整数n<20,表示有n组测试数据,下面是n组数据;每组第一行一个整数m<20,表示本组有m个住户,下面的m行每行有两个整数0<x,y<100,表示某个用户所在街区
阅读全文
摘要:北大:3767I Wanna Go HomeTime Limit: 1000MSMemory Limit: 65536KTotal Submissions: 2523Accepted: 1049Description 1 #include<stdio.h> 2 #include<string.h> 3 #include<stdlib.h> 4 #define maxint 999999 5 int c[610][610],dist[610],p[610]; 6 void dj(int n) 7 { 8 int i,j,temp,u,s[610]; 9 for
阅读全文
摘要:1 #include<stdio.h> 2 #include<string.h> 3 4 const int max=120;//字符串大小 5 char x[max],y[max]; 6 int b[max][max]; 7 int c[max][max]; 8 int m,n; 9 10 void printstring(int i,int j)//打印最长字串11 {12 if(i==0||j==0) return;13 if(b[i][j]==1) 14 {15 printstring(i-1,j-1);16 printf("...
阅读全文