Gravatar
lihaoze
积分:1315
提交:359 / 750

Pro697  [USACO 2.3.3]零数列

这一题一开始我是用dfs选数,但是调试起来太麻烦了,于是换了一个思路,每次选出来 $n-1$ 个符号,最后check一下。

check 函数的策略是每遇到一个不为 空格 的字符就把当前的数 $now$ 加进变量 $x$ 中,然后 $now$ 初始化成当前字符的下一个数字(也就是 $i + 2$),接着把这个字符用 $sig$ 存起来作为下一个数的符号,如果遇到的字符是 空格 就把 $now$ 进一位加上 空格 后面的数,最后如果 $x$ 的值为 $0$,那么就符合要求。因为我的 $chosen$ 数组是从 $0$ 开始的,而 $1$ 一开始就加进了 $now$ 中,所以 "字符后面的那个数字" 对应的下标就是 $i + 2$。这个下标的问题花了我半天时间调试。

答案的输出的话其实没有那么麻烦,只需要把答案的字符串存起来排一下序就可以了,因为 std::string 本来就可以比较字典序的大小


2022-03-19 23:00:47    
我有话要说
暂无人分享评论!