csu 1249 争性酶抑制剂和同工酶(最小割)
来源:互联网 发布:软件测试报告范例 编辑:程序博客网 时间:2024/05/02 00:56
1249: 竞争性酶抑制剂和同工酶
Time Limit: 1 Sec Memory Limit: 128 MBSUBMIT: 60 Solved: 31
[SUBMIT][STATUS]
Description
人体内很多化学反应都需要酶来催化。酶的功能可以简单理解为:将一种物质(底物)转化为另一种物质(目标产物)。
竞争性酶抑制剂会与底物竞争酶上的结合位点,当抑制剂达到一定剂量时,底物便竞争不过抑制剂,难以与酶结合,从而使反应无法进行。
结构不同但催化相同化学反应的酶称为一组同工酶。通常一种抑制剂只能抑制一种酶。当一种酶被它的抑制剂所抑制时,可以通过同工酶的催化使反应得以继续进行。如果一组同工酶全部被抑制,反应自然就无法再进行。但人体内的反应是千变万化的,一条反应途径被阻断,还可以通过其他反应途径,使底物经过多步转化,最终转化为目标产物。
现在已知各种物质之间的转化关系及抑制每种酶所需的抑制剂剂量,那么最少需要多少剂量的抑制剂,才能彻底阻断某种两种物质之间的转化呢?
Input
多组测试数据。对于每一组测试数据:
第一行两个整数:N、M,分别表示物质的种数、酶的种数(2<=N<=150)(0<=M<=5000)。N种物质分别编号为1到N。
接下来M行,每行描述一种酶。一行有三个整数A、B、C,表示这种酶可将A物质转化为B物质;若要抑制这种酶,需要相应的抑制剂C克(0<=C<=100000)。这M种酶中,有不少是同工酶,同工酶不超过250组。
最后一行,两个整数S、D,表示要彻底阻止S物质转化为D物质。
Output
每组测试数据输出一行。所需抑制剂的最小总量。
Sample Input
5 62 1 23 5 12 3 71 5 33 4 44 5 52 53 41 3 72 3 51 3 61 2 31 33 21 2 21 3 42 3150 01 150
Sample Output
71600
/**最小割*/#include<stdio.h>#include<string.h>#include<queue>#include<algorithm>using namespace std;#define N 155#define INF 1<<30int n,m,f[N][N];int s,e,c,pre[N];int bfs(){ queue< int > q; memset(pre,-1,sizeof(pre)); q.push(s); pre[s]=0; int k,i,inc=INF; while(!q.empty()) { k=q.front(); q.pop(); for(i=1;i<=n;++i) if(i!=s&&pre[i]==-1&&f[k][i]) { pre[i]=k; q.push(i); inc=min(inc,f[k][i]); if(i==e) return inc; } } return 0;}int flow(){ int res=0; while(1) { int inc=bfs(); if(inc==0) break; res+=inc; int i=e,j; for(;i!=s;) { j=pre[i]; f[j][i]-=inc; f[i][j]+=inc; i=j; } } return res;}int main(){ while(scanf("%d%d",&n,&m)==2) { memset(f,0,sizeof(f)); while(m--) { scanf("%d%d%d",&s,&e,&c); f[s][e]+=c; } scanf("%d%d",&s,&e); for(int i=1;i<=n;++i) f[e][i]=f[i][s]=0; printf("%d\n",flow()); } return 0;}
- csu 1249 争性酶抑制剂和同工酶(最小割)
- 最大流和最小割
- 最大流和最小割
- CSU 1355地雷清除计划 网格图清除最少的地雷使得对角联通 最小割
- 最小割
- 最小割
- 最小割
- 最小割
- 最大流和最小割算法
- 最大流和最小割:Edmonds_Karp算法
- HDU529最小割和单源最短路
- 最小割的一些性质和理解
- csu 1307 最大值最小,
- 【最小割】bzoj:1797最小割
- 2229: [Zjoi2011]最小割 最小割
- 【bzoj2229】【ZJOI2229】【最小割】【最小割】
- Bzoj2229:[Zjoi2011]最小割:分治最小割
- bzoj 1797 最小割【最小割】【tarjan】
- linux 下安装jdk1.6
- DataGridView使用技巧
- 第二次实训(4)
- 定制安装FreeBSD 8.1
- 构造栈的数据结构,要求实现min函数,通过min函数取得栈中的最小值。要求PUSH, POP, MIN的时间复杂度为O(1)
- csu 1249 争性酶抑制剂和同工酶(最小割)
- java--幸运抽奖
- mysql升级那点事
- 苹果系统升级,IOS系统及XCODE .
- 项目管理心得:一个项目经理的个人体会、经验总结
- 《Windows程序设计》之鼠标1
- 一切都是错
- 第一位让我敬佩的学者张维迎
- Java学习之路:不走弯路,就是捷径