作者: yylogo

  • 关于细胞生命的问题

      我们生物老师说过,克隆生物一生下来获得寿命就很短,换句话说,假设A给予了它细胞核,那么它一生下来的年龄就是A的年龄了,但是很自然就会想到受精卵为什么就不会有这种现象呢?受精卵的细胞核也是来自父母双方,为什么寿命又和克隆的现象不一样呢?   刚刚,又联想到了植物细胞的全能型,应该不会有这种现象,但是又有问题,植物貌似寿命都是无限的,至少我眼里好像是这样子,唉,科学真的好神奇。

  • 将植物细胞核移植进动物细胞会怎样?

      将植物细胞核移植进动物细胞会怎样?或者反过来,将动物细胞核放进植物细胞会怎样?   这个问题我能做下简单的猜测,因为细胞核是一个细胞的核心,而且细胞核会控制整个细胞的行为,种类或者一些更加的部分,而且也学过一些关于细胞核的问题,细胞核决定了这个细胞的形态什么的,所以我觉得动物细胞可能会慢慢变化成植物细胞。   呵呵,奇思妙想从来都是奇迹的来源。

  • 细胞是怎么确定自己是什么组织的细胞的?

      细胞是如何确定自己是什么组织的?或者说肌肉组织是凭借什么确定自己是肌肉组织以确定那些基因处于抑制状态,哪些基因处于激活状态?   对于这一个问题,我无法做出过多的猜测,因为这个就到了机化学或者分子原子的层次的生物了,高三甚至以后真的对生物有兴趣再来解决,潭酒吧。

  • 生物如果拥有两个细胞核会怎样(序)?

      我以前写过一个问题:当一个细胞中有两个细胞核共存的时候会怎么样?当时我的想法是可能会有两种情况,第一,就像失去细胞核一样,各种细胞器开始退化,然后死亡;第二,就像现代计算机的双核一样,一个细胞两个中心。   后来学了有丝分裂之后我就想,如果有两个细胞核在一个细胞中的话,可能会生成一个新的细胞壁/细胞膜,分裂成为两个子细胞。   但是很遗憾,第一,我不是第一个想到这个问题的人,或者说,我生的时间太晚了;第二,可能猜测还错了。   今天生物老师偶然提到了,如果一个细胞中有两个细胞核的话会怎么样,在下一册书上有答案, 翻了好一阵子,硬是没有找到答案,以后学了再说吧,这个问题先留着。

  • RQNOJ 47 [NOIP2003]神经网络

    算法本质:SPFA 算法描述:网上有一些人的代码是错的,只怪NOIP这种破竞赛的难度太低,数据太差,导致他们都可以溜过去了,但是有不少人的代码都是不能够AC的代码,他们利用图的进度来判断是否能够加入SPFA的列队,那么特殊情况,当有一个神经节点无法发送信号时,它后面的所有节点不都死翘翘了,迟迟不能进入列队,你们可以测试一下这一组数据:de> 5 5 1 0 0 1 0 0 0 0 0 0 1 2 1 1 3 1 2 4 1 3 4 1 4 5 1de>   思路其实还是很简单的,就是一层一层的枚举,当入读为0就入列队,如果c[i]<0 ON code lang="C">#include #include #define MAX 200 int n, p; int f[MAX]; int map[MAX][MAX]; int link[MAX][MAX]; int lenth[MAX], in[MAX]; void add(int a, int b, int c) { link[a][lenth[a]] = b; map[a][lenth[a]] = c; lenth[a]++; in[b]++; } int queue[MAX]; int end, head; void enqueue(int i) { queue[end++] = i; } int exqueue(void) { return queue[head++]; } int main(int argc, char *argv[]) { int t, s, l; int i; scanf("%d%d", &n, &p); for(i = 0; i 0){ enqueue(i); }else{ f[i] = -t; } } for(i = 0; i 0){ printf("%d %d\n", i + 1, f[i]); l = 0; } } if(l){ printf("NULL\n"); } return 0; } de>

  • USACO 3.4.4 Raucous Rockers 解题报告

    题目本质:动态规划?枚举?都像 算法描述:用f[i][j][k] 代表第i张碟子装了长度为j的歌, 而且最后一首是k。具体的方程看代码吧 复杂度:时间O(n^4), 空间O(n^3) / LANG: C ID: yylogoo1 PROG: rockers / #include #include #define MAX 21 int num[MAX]; int f[MAX][MAX][MAX]; int ans; int n, t, m; int main(int argc, char *argv[]) { int i, j, k, l; freopen("rockers.in", "r", stdin); freopen("rockers.out", "w", stdout); scanf("%d%d%d", &n, &t, &m); for(i = 1; i f[i][j + num[l]][l]){ f[i][j + num[l]][l] = f[i][j][k] + 1; } }else{ if(f[i][j][k] + 1 < f[i + 1][num[l]][l]){ f[i + 1][num[l]][l] = f[i][j][k] + 1; } } } if(ans

  • SGU 105 Div 3 解题

    算法本质:数学 算法描述:有这么一条数学公式,小学学的,把所有位数上的数加起来,如果能被三整除那么这个数就能被三整除,那么就很方便了,因为题目是相邻的数字相乘,那么题目所描述的数列每隔3个就会有2个能被3整出。 复杂度:时间&空间:O(1) #include #include int num[3] = {0, 0, 1}; int main(int argc, char argv[]) { int n; scanf("%d", &n); printf("%d\n", n / 3 2 + num[n % 3]); return 0; }

  • USACO 3.4.3 Electric Fence 解题报告

    题目本质:相似三角形+枚举 算法描述:题目给出的三角形比较特殊,所以可以直接枚举,当然也不能说是直接枚举咯。我的算法是,对于每一行进行枚举,但是很快就到瓶颈了,无法确定坐标,虽然能够画出相似三角形,因为三角形的一条边在x轴上,所以从y等于(-)1(看情况而定是1还是-1)至m,每一行做与x轴平行的线就有相似三角形了,但是只能确定长短,不能确定坐标,后来想了好阵子,才想到,用高来确定坐标,用两个三角形,(n, m)(n, 0)(0, 0),(m, n)(n, 0)(p, 0),分别可以把新坐标求出来,然后一个向上取整,一个向下取整,相减+1就可以了,接下来就是细节了。 Pay attention:y=0 不计算,x轴上所有的点都在线上,不符合要求;如果在某个y上,x1, x2(相似三角形求出的两个坐标), x1, x2为整数的话, 那么x1, x2连点都不能取。 复 杂 度:这题不会分析,不知道什么是N。 de lang="c">/ LANG: C ID: yylogoo1 PROG: fence9 / #include #include #include #define swap(a, b) do{\ int t;\ t = a;\ a = b;\ b = t;\ }while(0) int main(int argc, char argv[]) { int i; int x[2] = {0}; int a, b, k; int x1, x2; double t; int ans = 0; freopen("fence9.in", "r", stdin); freopen("fence9.out", "w", stdout); scanf("%d%d%d", &a, &b, &x[1]); if(x[0] < x[1]){ swap(x[0], x[1]); } k = b / abs(b); for(i = 1; i != b; i += k){ //向上取整 x1 = ceil(1.0 (b – i) / b (x[0] – a) + a); //自动向下取整 x2 = floor(1.0 (b – i) / b (x[1] – a) + a); ans += x2 – x1 + 1; t = 1.0 (b – i) / b (x[0] – a) + a; if(t <0 x t>= x1 – 0.00001){ ans–; } t = 1.0 (b – i) / b * (x[1] – a) + a; if(t <0 x t>= x1 – 0.00002){ ans–; } } printf("%d\n", ans); return 0; } de>

  • 去掉wget烦人的 “eta(英国中部时间)” 提示

    我用Linux也有一两年的历史了, 一直以来都有一块心病困扰着我, 那是什么呢? 没错了, 就是标题所说的, wget有事没事就会自动刷新, 刷屏, 不停地重复输出那一行, 总是没有解决, 一直都是这个样子, 今天下Linux kernel 2.6.37的时候决心要去掉这个烦人的地方, 找了好久, 总算是找到了解决方案!! gentoo (MYSKY注: 对各个发行版都同样受用.) 里的 wget ,从1.12版本开始,就一直有个不影响功能的小毛病:由于中文翻译的失误,进度提示的时候,会被拉成很多行。原因就是原来英文的ETA这3个字母,被翻译成了 “eta(英国中部时间)” 这么长,所以引起断行出错。 zh_CN.po 里,其实还是有说明的,只不过翻译人员疏忽了。如下: #. TRANSLATORS: "ETA" is English-centric, but this must #. be short, ideally 3 chars. Abbreviate if necessary. #: src/progress.c:805 #, c-format msgid " eta %s" msgstr " eta(英国中部时间) %s" 既然这个小毛病不影响功能,之前也就没太在意,一直在等上游更新,不过到了 1.12-r1 版本,仍旧还有这个毛病,我也渐渐的看不下去了,就决定动手自己改掉它了。 方法也很简单,用之前我介绍过的命令就可以了,具体如下: msgunfmt /usr/share/locale/zh_CN/LC_MESSAGES/wget.mo -o - | sed 's/eta(英国中部时间)/ETA/' | msgfmt - -o /tmp/zh_CN.mo sudo cp /tmp/zh_CN.mo /usr/share/locale/zh_CN/LC_MESSAGES/wget.mo 搞定。