201612-3-权限查询
题目链接
http://118.190.20.162/view.page?gpid=T50
题目大意
题目太蛋疼。。。直接看吧。。。
思路
没有任何思路。。考虑好数据结构怎么设计以后就可以直接大模拟了。。
纯粹为了记录我这伟大的200+行代码。。
代码
1 |
|
压缩编码
题目链接
http://118.190.20.162/view.page?gpid=T49
题目大意
求最短的满足字典序的编码比特数。
思路
收到题目的干扰。本以为是哈夫曼编码的变形,但是看了网上的题解以后,原来是一个DP。
因为需要保证字典序,所以ABCD……是不能颠倒顺序的。所以类似于石子合并,相邻的合并,求最小代价。其中的内在原因是这样的,首先保证字典序,然后在这个场景下,每合并一次就是相当于增加一层,所以代价是类计算的,所以和石子合并的移动一样。
dp[i][j]表示合并第i堆到第j堆的最小代价。
状态转移方程:dp[i][j]=min{dp[i][k],dp[k+1][j]}+sum[j]-sum[i-1]
sum[i]表示前i堆的总代价。
不得不说。。这个dp的代码不太好写。。。
代码
1 |
|
后记
这几天没有每天都做算法练习。。作业有点多,近世代数有点凉。。
CSP加油~