题目大意:给定n个站点,每个人都会在某个站点上车并在之后的某个站点下车,查票员可以在两个站点之间查票,问查票k次最多查到多少人
壮哉我大轻音部(误
令f[i][j]表示当前在第i个点和第i+1个点之间查票,已经查了j次的最大收益
枚举上一次查票的位置,统计比上一次能多查出来的人数即可
时间复杂度O(kn^2) 输出方案记录一下上一次查票的位置即可
由于没有SPJ所以要输出字典序最小的方案...
分类:
其他好文 时间:
2015-03-05 12:53:51
阅读次数:
160
擅长排列的小明
时间限制:1000 ms | 内存限制:65535 KB
难度:4
描述小明十分聪明,而且十分擅长排列计算。比如给小明一个数字5,他能立刻给出1-5按字典序的全排列,如果你想为难他,在这5个数字中选出几个数字让他继续全排列,那么你就错了,他同样的很擅长。现在需要你写一个程序来验证擅长排列的小明到底对不对。
输入第一行输入整数N(1
每组测试...
分类:
其他好文 时间:
2015-03-04 14:43:11
阅读次数:
124
题目:二维推箱子游戏,给你箱子、人和目标的位置,输出问题的解(推箱子和行走的路径)。
分析:搜索、优先队列。优先顺序为:首先保证推箱子的字数最少、然后是走的步数最少。
利用二叉堆做优先队列,在上面进行bfs即可。
说明:注意搜索时按照字典序方向枚举,不然会WA╮(╯▽╰)╭。
#include
#include
#include
#include
#incl...
分类:
其他好文 时间:
2015-03-03 23:46:42
阅读次数:
429
很明显的DP状态了,设dp[i][j],设当前在状态点i,经过j步能得到的最大分值。也是从root直接扩展就可以了。至于字符串,实在有点困难,开始想着记录路径,但后来发现路径从后往前回溯不一定是字典序最小,夭折。。。看别人的,发现直接就把字符串存下来,跪了,也对,毕竟才50个。直接存字符串,比较,选...
分类:
其他好文 时间:
2015-03-03 23:33:32
阅读次数:
162
http://cojs.tk/cogs/problem/problem.php?pid=894题意:n个点m条边的加权网络,求最少边数的按编号字典序最小的最小割。(nusing namespace std;typedef long long ll;struct Gr { static const i...
分类:
其他好文 时间:
2015-03-01 17:03:14
阅读次数:
177
A. Vitaly and Strings题意:给出两个长度相同的字符串,问是否存在一个字符串,该串的字典序大于输入的第一个串 且 小于第二个串。分析:找出比第一个串大一的串,看看它是否小于第二个串,是的话就满足,否则不存在这样的串。 1 #include 2 using namespace st....
分类:
其他好文 时间:
2015-03-01 10:26:55
阅读次数:
184
题意:输入众多字符串(中间有空格),按字典序输出,且输出每个字符串所占整个字符串数量的百分比
思路:用字典树的先序遍历,遍历到字符串的末尾便输出并算出百分比即可
这题同样用C++stl map 可以很好解决,但毕竟题目是字典序,比如逆序就字典树同样可以解决
//1632K 782MS
#include
#include
#include
#include
using namespace st...
分类:
编程语言 时间:
2015-02-28 08:55:35
阅读次数:
168
题目大意:给出一个序列,求出字典序最小的长度为k的上升序列。
思路:先随便搞搞求出一个数组f,表示从i开始最长的上升序列的长度。然后贪心的往后找,能放在当前位置就放。
CODE:
#define _CRT_SECURE_NO_WARNINGS
#include
#include
#include
#include
#define MAX 10010
#defin...
分类:
其他好文 时间:
2015-02-27 17:17:23
阅读次数:
124
题意:对输入的字符串,按字典序升序输出所有种排列。
思路:这个基础就是之前将到的枚举排列问题,只不过当时是整型,这里是字符型。
注意:一个是输出的时候每组数组后都要输出一个空行(虽然你去复制sample out会发现最后一组数据没空行,但程序里的确是包括最后一组数据后都有空行)
第二是因为这里是字符型,输出的时候直接按字符串输出即可,但是需要在排列数组的最末位加'\0'!还有,在最开始需要对...
分类:
其他好文 时间:
2015-02-27 13:33:47
阅读次数:
150
输入正数n,按字典序从小到大的顺序输出n个数的所有排列。两个序列的字典序大小关系等价于从头开始第一个不相同位置处的大小关系。
一、生成1~n的排列
思路:
void print_permutation(序列A,集合S)
{
if ( S 为空 ) 输出序列 A;
else 按照从小到大的顺序依次考虑 S 的每个元素 v
{
prin...
分类:
其他好文 时间:
2015-02-27 00:21:19
阅读次数:
174