LCS问题。基金会DP。

我很伤心WA非常多。就在LCS问题,需要记录什么路。

反正自己的纪录path错误,最后,就容易上当。

没有优化,二维阵列,递归打印,cin.eof() 来识别 end of file 标识。

至于单词用map 映射的。

事实上也用不着,直接二维string或者 二维char 然后strcmp 也行。

Special Judge

交 UVA 531 奇怪的PE了。

。。 然后改成 flag 标记 输出 空格。最终都AC了。

  1. #include<cstdio>
  2. #include<cstring>
  3. #include<string>
  4. #include<queue>
  5. #include<algorithm>
  6. #include<map>
  7. #include<stack>
  8. #include<iostream>
  9. #include<list>
  10. #include<set>
  11. #include<bitset>
  12. #include<vector>
  13. #include<cmath>
  14.  
  15. #define INF 0x7fffffff
  16. #define eps 1e-8
  17. #define LL long long
  18. #define PI 3.141592654
  19. #define CLR(a,b) memset(a,b,sizeof(a))
  20. #define FOR(i,a,b) for(int i=a;i<b;i++)
  21. #define FOR_(i,a,b) for(int i=a;i>=b;i--)
  22. #define pb push_back
  23. #define mp make_pair
  24. #define ft first
  25. #define sd second
  26. #define sf scanf
  27. #define pf printf
  28. #define sz(v) ((int)(v).size())
  29. #define all(v) (v).begin(),(v).end()
  30. #define acfun std::ios::sync_with_stdio(false)
  31.  
  32. #define SIZE 1000 +1
  33. using namespace std;
  34.  
  35. int a[SIZE],b[SIZE];
  36. int dp[SIZE][SIZE];
  37. int path[SIZE][SIZE];
  38. map<string,int>word;
  39. map<int,string>exword;
  40. bool flag;
  41. void print(int i,int j)
  42. {
  43. if(i>0&&j>0)
  44. {
  45. if(path[i][j]==0)
  46. {
  47. print(i-1,j-1);
  48. if(flag)
  49. cout<<" ";
  50. else
  51. flag=1;
  52. cout<<exword[a[i-1]];
  53. }
  54. else if(path[i][j]==1)
  55. print(i-1,j);
  56. else if(path[i][j]==-1)
  57. print(i,j-1);
  58. }
  59. }
  60. int main()
  61. {
  62. acfun;
  63. while(1)
  64. {
  65. string tmp;
  66. word.clear();
  67. int cot=1;
  68. int la=0,lb=0;
  69. flag=0;
  70. while(1)
  71. {
  72. cin>>tmp;
  73. if(cin.eof())return 0;
  74. if(tmp=="#")break;
  75. if(word[tmp]==0)
  76. {
  77. word[tmp]=cot++;
  78. exword[cot-1]=tmp;
  79. }
  80. a[la++]=word[tmp];
  81. }
  82. while(1)
  83. {
  84. cin>>tmp;
  85. if(tmp=="#")break;
  86. if(word[tmp]==0)
  87. {
  88. word[tmp]=cot++;
  89. exword[cot-1]=tmp;
  90. }
  91. b[lb++]=word[tmp];
  92. }
  93. FOR(i,0,la)
  94. FOR(j,0,lb)
  95. {
  96. if(a[i]==b[j])
  97. {
  98. dp[i+1][j+1]=dp[i][j]+1;
  99. path[i+1][j+1]=0;
  100. }
  101. else
  102. {
  103. if(dp[i+1][j]>=dp[i][j+1])
  104. {
  105. dp[i+1][j+1]=dp[i+1][j];
  106. path[i+1][j+1]=-1;
  107. }
  108. else
  109. {
  110. dp[i+1][j+1]=dp[i][j+1];
  111. path[i+1][j+1]=1;
  112. }
  113. }
  114. }
  115. //cout<<dp[la][lb]<<endl;
  116. print(la,lb);
  117. cout<<endl;
  118. }
  119. }

版权声明:本文博客原创文章,博客,未经同意,不得转载。

POJ 2250 Compromise (UVA 531)的更多相关文章

  1. POJ - 2250 Compromise (LCS打印序列)

    题意:给你两个单词序列,求出他们的最长公共子序列. 多组数据输入,单词序列长度<=100,单词长度<=30 因为所有组成LCS的单词都是通过 a[i] == b[j] 更新的. 打印序列的 ...

  2. POJ 2250 Compromise(LCS)

    POJ 2250 Compromise(LCS)解题报告 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=87125#proble ...

  3. POJ 3279 Fliptile(翻格子)

    POJ 3279 Fliptile(翻格子) Time Limit: 2000MS    Memory Limit: 65536K Description - 题目描述 Farmer John kno ...

  4. POJ - 3308 Paratroopers(最大流)

    1.这道题学了个单词,product 还有 乘积 的意思.. 题意就是在一个 m*n的矩阵中,放入L个敌军的伞兵,而我军要在伞兵落地的瞬间将其消灭.现在我军用一种激光枪组建一个防御系统,这种枪可以安装 ...

  5. POJ 1274 The Perfect Stall || POJ 1469 COURSES(zoj 1140)二分图匹配

    两题二分图匹配的题: 1.一个农民有n头牛和m个畜栏,对于每个畜栏,每头牛有不同喜好,有的想去,有的不想,对于给定的喜好表,你需要求出最大可以满足多少头牛的需求. 2.给你学生数和课程数,以及学生上的 ...

  6. POJ 1015 Jury Compromise(dp坑)

    提议:在遥远的国家佛罗布尼亚,嫌犯是否有罪,须由陪审团决定.陪审团是由法官从公众中挑选的.先随机挑选n个人作为陪审团的候选人,然后再从这n个人中选m人组成陪审团.选m人的办法是:控方和辩方会根据对候选 ...

  7. POJ 3259 Wormholes (Bellman_ford算法)

    题目链接:http://poj.org/problem?id=3259 Wormholes Time Limit: 2000MS   Memory Limit: 65536K Total Submis ...

  8. POJ 1006 Biorhythms (中国剩余定理)

    在POJ上有译文(原文右上角),选择语言:简体中文 求解同余方程组:x=ai(mod mi) i=1~r, m1,m2,...,mr互质利用中国剩余定理令M=m1*m2*...*mr,Mi=M/mi因 ...

  9. poj 1364 King(差分约束)

    题意(真坑):傻国王只会求和,以及比较大小.阴谋家们想推翻他,于是想坑他,上交了一串长度为n的序列a[1],a[2]...a[n],国王作出m条形如(a[si]+a[si+1]+...+a[si+ni ...

随机推荐

  1. PHP+lghttpd + postgresql 环境搭建

    PHP+lghttpd + postgresql 环境搭建 Linux 下PHP环境搭建 安装环境:PHP+lghttpd + postgresql 1:yum install lighttpd 红旗 ...

  2. C#验证字符串是否是数字,是否包括中文,是否是邮箱格式,是否是电话格式

    using System;     using System.Web;     using System.Text;     using System.Web.UI.WebControls;     ...

  3. 解决CentOS无法显示中文字体 | 系统运维 | Web2.0

    解决CentOS无法显示中文字体 | 系统运维 | Web2.0 About Me    博客园    devops    前端    张家港水蜜桃 傍晚好! 2013年09月12日 17:56:08 ...

  4. iOS 史上最全的图片压缩方法集合

    做上传图片功能,特别是类似于微信,QQ里面,公布9张图片, 少不了碰到一个问题,就是图片压缩问题,当然我也遇到了. 我研究了这个问题,发现网上普遍的方法是例如以下 //压缩图片质量 +(UIImage ...

  5. Android开发5:布局管理器2(表格布局TableLayout)

    版本:Android4.3 API18  学习整理:liuxinming 概念      TableLayout继承了LinearLayout,因此它的本质依然是线性布局管理器.      表格布局采 ...

  6. 使用Java7提供Fork/Join框架

    在Java7在.JDK它提供了多线程开发提供了一个非常强大的框架.这是Fork/Join框架.这是原来的Executors更多 进一步,在原来的基础上添加了并行分治计算中的一种Work-stealin ...

  7. 解析汽车B2C商城网站四种盈利模式

    汽车已成为家庭的日常用品,汽车的配套设施也成为销售的热点,汽车B2C电子商城为行业营销的新平台,汽车B2C电子商务网站盈利的模式是怎样的?创新的盈利模式才能在行业竞争中生存. 资讯产品一体模式 网站的 ...

  8. SE 2014年4月1日

    一. 描述OSPF报文都有哪些,其作用? OSPF报文主要有:hello报文.DD报文.LSR报文.LSU报文和LSAck报文. Hello报文主要用来建立和维护邻居关系. DD报文是链路状态数据库的 ...

  9. zoj1610(线段树)

    题目连接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1610 题意:在0-8000长的线段里面,按先后次序依次覆盖颜色, ...

  10. MySQL 触发器结构及三个案例demo

    --你必须拥有相当大的权限才能创建触发器(CREATE TRIGGER),如果你已经是Root用户,那么就足够了.这跟SQL的标准有所不同. CREATE TRIGGER语法 CREATE TRIGG ...