玉米 10条染色体长度
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了玉米 10条染色体长度相关的知识,希望对你有一定的参考价值。
参考技术A 玉米10条染色体长度教程:1、打开玉米数据库(http://ensembl.gramene.org/Zea_mays/Info/Index)网站,输入想要查找得基因。
2、点击Gene ID 即可查看这个基因的信息,从中我们可以看到这个基因所在的位置
3、点击location
4、点击chromosome summary,可以看到基因所在染色体信息。
5、点击change chromosome 右侧,即可查找玉米所有染色体长度信息。
染色体(chromosome)是细胞在有丝分裂或减数分裂时DNA存在的特定形式,由染色质丝螺旋缠绕,逐渐缩短变粗形成。染色体有种属特异性,随生物种类、细胞类型及发育阶段不同,其数量、大小和形态存在差异。
bzoj3594 [Scoi2014]方伯伯的玉米田
Description
方伯伯在自己的农田边散步,他突然发现田里的一排玉米非常的不美。
这排玉米一共有N株,它们的高度参差不齐。
方伯伯认为单调不下降序列很美,所以他决定先把一些玉米拔高,再把破坏美感的玉米拔除掉,使得剩下的玉米的高度构成一个单调不下降序列。
方伯伯可以选择一个区间,把这个区间的玉米全部拔高1单位高度,他可以进行最多K次这样的操作。拔玉米则可以随意选择一个集合的玉米拔掉。
问能最多剩多少株玉米,来构成一排美丽的玉米。
Input
第1行包含2个整数n,K,分别表示这排玉米的数目以及最多可进行多少次操作。
第2行包含n个整数,第i个数表示这排玉米,从左到右第i株玉米的高度ai。
Output
输出1个整数,最多剩下的玉米数。
Sample Input
3 1
2 1 3
2 1 3
Sample Output
3
HINT
1 < N < 10000,1 < K ≤ 500,1 ≤ ai ≤5000
正解:$dp$+二维树状数组优化。
首先有一个显然的结论,就是每次拔玉米肯定是从一个点开始一直拔到$n$,这样肯定是不会差的。
然后我们就可以$dp$了,设$f[i][j]$表示前$i$个点,拔高$j$次玉米的最大玉米数。
然后$dp[i][j]=max(dp[k][p])+1$,当$a[k]\leq a[i]+j-p$时成立。
移项以后可以得到$a[k]+p\leq a[i]+j$,于是我们维护一个二维树状数组的前缀最大值就行了。
1 #include <bits/stdc++.h> 2 #define il inline 3 #define RG register 4 #define ll long long 5 #define lb(x) (x & -x) 6 #define max(a,b) (a>b ? a : b) 7 8 using namespace std; 9 10 int c[6000][510],a[10010],sz,n,k; 11 12 il int gi(){ 13 RG int x=0,q=1; RG char ch=getchar(); 14 while ((ch<‘0‘ || ch>‘9‘) && ch!=‘-‘) ch=getchar(); 15 if (ch==‘-‘) q=-1,ch=getchar(); 16 while (ch>=‘0‘ && ch<=‘9‘) x=x*10+ch-48,ch=getchar(); 17 return q*x; 18 } 19 20 il void add(RG int x,RG int y,RG int v){ 21 for (RG int i=x;i<=sz;i+=lb(i)) 22 for (RG int j=y;j<=k;j+=lb(j)) c[i][j]=max(c[i][j],v); 23 return; 24 } 25 26 il int query(RG int x,RG int y){ 27 RG int res=0; 28 for (RG int i=x;i;i^=lb(i)) 29 for (RG int j=y;j;j^=lb(j)) res=max(res,c[i][j]); 30 return res; 31 } 32 33 int main(){ 34 #ifndef ONLINE_JUDGE 35 freopen("corn.in","r",stdin); 36 freopen("corn.out","w",stdout); 37 #endif 38 n=gi(),k=gi()+1; 39 for (RG int i=1;i<=n;++i) a[i]=gi(),sz=max(sz,a[i]); sz+=k; 40 for (RG int i=1;i<=n;++i) 41 for (RG int j=k;j;--j) add(a[i]+j,j,query(a[i]+j,j)+1); 42 printf("%d\n",query(sz,k)); return 0; 43 }
以上是关于玉米 10条染色体长度的主要内容,如果未能解决你的问题,请参考以下文章
python学习——读取染色体长度(用循环或者函数求总长并获取最长染色体长度)