Timus 1410. Crack
来源:互联网 发布:网络办公管理v3.1系统 编辑:程序博客网 时间:2024/06/07 17:08
import java.io.*;import java.math.BigInteger;import java.util.*;public class Main { public static void main (String [] args) throws Exception { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); ArrayList<String> arr = new ArrayList<String>(); String tmp=""; String c; while((c = reader.readLine())!=null){ for(int i=0;i<c.length();i++){ char temp = c.charAt(i); if((temp>='a'&&temp<='z')||(temp>='A'&&temp<='Z')){ tmp+=temp; }else{ if(tmp.length()!=0){ arr.add(tmp); tmp=""; } } } if(tmp.length()!=0){ arr.add(tmp); tmp=""; } } if(tmp.length()!=0) arr.add(tmp); if(arr.isEmpty()){ System.out.println(0); return; } int dp[][] = new int[arr.size()][2]; dp[0][1] = arr.get(0).length(); for(int i=1;i<arr.size();i++){ dp[i][1] = arr.get(i).length()+dp[i-1][0]; dp[i][0] = Math.max(dp[i-1][1], dp[i-1][0]); } System.out.println(Math.max(dp[arr.size()-1][0], dp[arr.size()-1][1])); }}
这题真是蛋碎,题目看不懂导致我直接搜题意.
题意是给你一个句子,然后相邻的两个单词不能同时选,问你如何选可以使拿到的单词总长度最长
每个单词无非选或不选,和那个1039的树形DP是一样的方程,而且解空间更简单,一维就行了。
蛋碎的是如何划分单词。
123321这个不是单词,结果输出0
abc
abc
这样输入是两个单词,换行符是他们的词分割符
结果应该是3.
各种RE,WA.
这题难度明显不如1039,题目也看不明白,无趣,不想说什么了。
0 0
- Timus 1410. Crack
- crack
- Crack
- Crack
- timus 1017
- timus 1073
- crack 练习
- 第一次crack
- Crack基础
- APK Crack
- APK_APK Crack
- APK Crack
- Crack程序设计语言
- APK Crack
- APK Crack
- APK Crack
- APK Crack
- APK Crack
- 正则表达式
- Effective C++读书笔记(3)
- 通过JavaAPI实现HDFS操作示例
- 1086: 勤奋的计算机系学生
- 关于ubuntu下codeblocks打不开的问题
- Timus 1410. Crack
- ScheduledExecutorService 的 scheduleAtFixedRate 和 scheduleWithFixedDelay 两个方法的区别
- 使用 SCons 轻松建造程序
- C调用C++函数
- gson的使用
- 基于朴素贝叶斯分类器的文本分类算法
- TF-IDF与余弦相似性的应用(一):自动提取关键词
- OpenGL Perspective Projection Matrix
- PageRank算法java实现版本