原题链接 http://acm.pku.edu.cn/JudgeOnline/problem?id=1171
版权声明:版权归作者WeiSteven所有,转载请注明!
题目意思大致如下:
首先给你一个可用字符集,比如:prog
那么我们需要计算的单词,都是在这个集合内的元素,否则单词的权值是0
那么可以组成的单词rog pog rop等等
计算单词的最大权值,但是单词可以拼接起来。
但是拼接起来后还是要在可用集合中,且个数都不能超支。
下面是题目对用的程序:
![](https://i-blog.csdnimg.cn/blog_migrate/81178cc93a2a3bb5048d90d76e7ec935.gif)
1
#include
<
iostream
>
2 #include < algorithm >
3 using namespace std;
4 struct words{ char word[ 8 ] ; int len , val ; } dic[ 40002 ];
5 char collect[ 8 ] ;
6 int used[ 26 ] , has[ 26 ] ,len , num , collect_max , tmax ;
7 int value[ 26 ] = { 2 , 5 , 4 , 4 , 1 , 6 , 5 , 5 , 1 , 7 , 6 , 3 ,
2 #include < algorithm >
3 using namespace std;
4 struct words{ char word[ 8 ] ; int len , val ; } dic[ 40002 ];
5 char collect[ 8 ] ;
6 int used[ 26 ] , has[ 26 ] ,len , num , collect_max , tmax ;
7 int value[ 26 ] = { 2 , 5 , 4 , 4 , 1 , 6 , 5 , 5 , 1 , 7 , 6 , 3 ,