soj

soj1678解题报告 2016-01-02

昨天没事干,本来切了2道水题,可以oj又挂了就没交上.今天交WA了一次,因为一个参数写错了= =简单总结一下. 题目大意: 抽象出如下序列: 1, 1.1,2, 1.1.1,1.2,3.... 第i串序列要么其和比前面的长,要么字典序比前面的大. 序列和显然从1,2,3,--,n. 序列长度为i时,其个数有 f[i] = f[i-1] + f[i-2] + ... + f[1] + f[0] ; 最左边为1的为f[i-1]个,最左边为2的为f[i-2],i的为f[0].. f[0] = f[1]

soj1663报告 2015-11-03

明天软考,但是今天还是手痒,在soj又切了道水题1663,看cauchy做了,故也来切掉. 题目意思是一串合法的表达式字符串,仅包括大写字母,+,-,(,),空格,tab字符,把多余的括号去掉.如:(A+(B+C)+(D-E)) ->A+B+C+D-E 或者((B))->B 思路: 1.堆栈操作字符串括号屁屁额 2. pos[top] = index ;//记录括号的位置 pre[top++] = ch ; //记录括号前的那个字符 num[i]//记录前i个字符有多少个大写字母. vis[i

soj4150 2015-11-01

先来无事,切道水题. 题目网址如下:http://cstest.scu.edu.cn/soj/problem.action?id=4150 最长递增子序列的变种. 代码如下: #include <stdio.h> #include <ctype.h> #include <string.h> #include <algorithm> using namespace std; inline bool get(int &t) { bool flag = 0

soj2829binary strings 广搜 2015-10-31

下午闲来无事,突然想起收藏夹里尘封多年的题目,都是些比较感兴趣的题目,随便看了道2829 binary strings. 链接:http://cstest.scu.edu.cn/soj/problem.action?id=2829 大意是: 给定一个初始字符串(不超过20位),和目标字符串,给定操作步骤,求初始字符串到目标字符串的最少操作次数. 操作步骤:对字符串某一段连续区间翻转(不是按位) 譬如:100011在[1,4]位翻转->110001 思路:显然是一个搜索题.状态映射到数组dist[

soj2714 2015-10-30

soj1678的字符界面版本. 通过计算空格从底向上推即可. 源码: #include <stdio.h> #include <stdlib.h> #include <ctype.h> #include <string.h> /************************************************************************/ /* soj2714 */ /****************************
一周排行