博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
topcoder srm 435 div1
阅读量:7024 次
发布时间:2019-06-28

本文共 2282 字,大约阅读时间需要 7 分钟。

problem1

遍历未被删除的叶子结点即可。

problem2

首先,将所有的蛋白质原子编号,设为$[0,m-1]$,每个原子可能对应多个长度为3的$ACGT$。设$n$为DNA串的长度。用$g[i][j]$表示从$i$开始匹配数字$j$后的最小位置,$0\leq i \leq n-1,0\leq j \leq m-1$。

然后就是动态规划.设$dp[i][j]$表示位置$i$之前最后匹配的数字为$j$的方案数。对所有的$0\leq t < m$有$dp[g[i][t]][t]+=dp[i][j] $

problem3

首先将所有节点分成若干个$group$,每个$group$里的节点可以互相到达。然后一个一个$group$进行处理。

对于某个$group$,建一个新的二分图$G$。对于其中的一个点$x$,若存在不在该$group$中的一点$y$使得存在边$y$到$x$那么在新图$G$中连一条$x$到$y$的边。那么该$group$中需要作为新的$division$的根结点的个数为$|group|-maxMatch(G)$。

 

code for problem1

import java.util.*;import java.math.*;import static java.lang.Math.*;public class CellRemoval {	List
> lists=null; public int cellsLeft(int[] parent, int deletedCell) { final int n=parent.length; lists=new ArrayList<>(); for(int i=0;i
()); } int root=-1; for(int i=0;i

  


code for problem2

import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;/** * Created by mcl on 2017/9/27. */public class DNADeletion {	final static int MOD=1000000007;	public int differentProteins(String[] DNASequence, String[] codonTable) {		StringBuilder sb=new StringBuilder();		for(int i=0;i
=0;--i) { for(int j=0;j<4;++j) { nxt[i][j]=nxt[i+1][j]; } nxt[i][getIndex(S.charAt(i))]=i; } List
> lists=init(codonTable); final int m=lists.size(); int[][] g=new int[n][m]; for(int i=0;i
cur)) { g[i][j]=cur; } } } } int[][] dp=new int[n+1][m]; for(int i=0;i
> init(String[] codonTable) { Map
map=new HashMap<>(); int id=0; List
> lists=new ArrayList<>(); for(int i=0;i
()); } lists.get(map.get(value)).add(key); } return lists; } int getIndex(char c) { if(c=='A') { return 0; } else if(c=='C') { return 1; } else if(c=='T') { return 2; } return 3; }}

  


code for problem3

import java.util.*;import java.math.*;import static java.lang.Math.*;public class CompanyRestructuring {		public int fewestDivisions(String[] hasManaged) {		final int n=hasManaged.length;		boolean[][] g=new boolean[n][n];		for(int i=0;i
left=new ArrayList<>(); List
right=new ArrayList<>(); for(int j=0;j

  

转载于:https://www.cnblogs.com/jianglangcaijin/p/7608196.html

你可能感兴趣的文章
中国合伙人
查看>>
实验三+138+牟平
查看>>
LinQ
查看>>
壳的装载过程
查看>>
树形结构
查看>>
在内存中是类似于这种形式存储
查看>>
i = NULL;
查看>>
α测试,β测试,冒烟测试,验收测试
查看>>
所不为人知的Python装饰器
查看>>
linux内核模块相关命令:lsmod,depmod,modprobe,modinfo,insmod,rmmod 使用说明
查看>>
xp 盗版变正版 vbs
查看>>
javaScript------------------基础
查看>>
时间复杂度一定的算法能处理的数据规模
查看>>
导出excel 文件
查看>>
Android 金融项目整理
查看>>
常见的数据库基础面试题大全
查看>>
Ubuntu的快捷键
查看>>
集算器之三:循环函数
查看>>
python数据类型
查看>>
vue2+vuex+vue-router 快速入门(二) 项目搭建
查看>>