博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 4534 郑厂长系列故事——新闻净化(AC自动机+DP)
阅读量:5145 次
发布时间:2019-06-13

本文共 2106 字,大约阅读时间需要 7 分钟。

蛋碎了,开始理解错题意的,以为跟上个题一样要替换。。。然后发现删除我不会啊,然后听宝哥讲了讲转移过程后,也不算难理解,主要是被前面的题给局限住思维了。

然后就是漫长的debug过程,手动构造数据,构造的我心碎了,最后看别人代码才发现错误,别人的代码实现方式和我明显不是一个风格的,我看的也很纠结啊。。。

在AC自动机构造关系的时候,开始只注意了-999的转移,然后慢慢debug后+上权值的转移,最后才发现999串的转移也要有,折腾了一天,终于过了。

1 #include 
2 #include
3 #include
4 #include
5 #include
6 #include
7 using namespace std; 8 #define N 2000 9 #define INF 10000000 10 int t; 11 int trie[N][26]; 12 int o[N]; 13 int que[N]; 14 int flag[N]; 15 int fail[N]; 16 int wa[N]; 17 int dp1[N][256]; 18 int dp2[N][256]; 19 int goal1[N][256]; 20 int goal2[N][256]; 21 int num; 22 void CL() 23 { 24 num = 0; 25 memset(trie,-1,sizeof(trie)); 26 memset(o,0,sizeof(o)); 27 memset(flag,0,sizeof(flag)); 28 memset(wa,0,sizeof(flag)); 29 t = 1; 30 } 31 void insert(char *str,int x) 32 { 33 int i,root,len,sum; 34 root = 0; 35 len = strlen(str); 36 sum = 0; 37 for(i = 0; i < len; i ++) 38 { 39 if(trie[root][str[i]-'a'] == -1) 40 trie[root][str[i]-'a'] = t ++; 41 root = trie[root][str[i]-'a']; 42 } 43 if(x == 999) 44 { 45 flag[root] = 1<
dp1[j][k] + 1)129 {130 dp2[j][k] = dp1[j][k] + 1;131 goal2[j][k] = goal1[j][k];132 }133 else if(dp2[j][k] == dp1[j][k] + 1)134 {135 goal2[j][k] = max(goal2[j][k],goal1[j][k]);136 }137 int c = str[i] - 'a';138 if(wa[trie[j][c]]) continue;139 int temp,val;140 temp = k|flag[trie[j][c]];141 val = o[trie[j][c]];142 if(dp2[trie[j][c]][temp] > dp1[j][k])143 {144 dp2[trie[j][c]][temp] = dp1[j][k];145 goal2[trie[j][c]][temp] = goal1[j][k] + val;146 }147 else if(dp2[trie[j][c]][temp] == dp1[j][k])148 {149 goal2[trie[j][c]][temp] = max(goal2[trie[j][c]][temp],goal1[j][k] + val);150 }151 }152 }153 for(j = 0; j <= t; j ++)154 {155 for(k = 0; k < (1<
dp1[i][(1<
= INF)178 printf("Case %d: Banned\n",cas++);179 else180 printf("Case %d: %d %d\n",cas++,ans1,ans2);181 }182 return 0;183 }184 /*185 9186 3187 abdc 2188 bd 3189 c 4190 abdc191 3192 aba 999193 a 6194 ab 5195 aba196 3197 3198 ab -1199 bc -2200 d -3201 abcd202 */

 

转载于:https://www.cnblogs.com/naix-x/p/3223211.html

你可能感兴趣的文章
parted分区
查看>>
图片标签img
查看>>
表哥的Access入门++以Excel视角快速学习数据库知识pdf
查看>>
TC 配置插件
查看>>
关于异步reset
查看>>
索引优先队列的工作原理与简易实现
查看>>
并发编程简介
查看>>
wow 各职业体验(pvp)
查看>>
字符串的操作
查看>>
性能优化之Java(Android)代码优化
查看>>
盒子游戏
查看>>
处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“Manag
查看>>
01: socket模块
查看>>
mysql触发器
查看>>
淌淌淌
查看>>
web页面实现指定区域打印功能
查看>>
win10每次开机都显示“你的硬件设置已更改,请重启电脑……”的解决办法
查看>>
VMware环境和Window环境进行网络连接的问题
查看>>
macOS10.12允许所有来源设置
查看>>
C++有关 const & 内敛 & 友元&静态成员那些事
查看>>