摘要: 题意:现在有n辆bus,然后有m个乘客。每辆bus有自己相应的开车路段,与开车时间。s,f,t,表示开车的起始站,终点站,开车时间。l,r,b分别表示乘客想要从l到达r站,然后乘客开始等车时间为b。那么就可以猜想到这个乘客要搭乘这辆车,需要满足一下条件s<l,r<f,t>b,那么此时我们按照起始点排序把所有的路段都包含进来,按照时间点来建立线段树,然后从单点更新,剩下的自己来看一下吧。。。View Code 1 #include<iostream> 2 #include<stdlib.h> 3 #include<algorithm> 4 # 阅读全文
posted @ 2013-03-07 20:55 诺小J 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 题意:在一个国家当中,给你一个词汇书,你可以用里面所有的字母拼凑出一个单词来,但是在这个国家当中存在一些禁用的单词,那么现在问你在不违反规则的情况下,你能尽可能的多拼凑出相应的单词来。那么也就是说拼凑的单词当中不能够出现禁用的单词的字段。后面看到网上教程当中的dp状态转移,傻眼了。。这都可以。dp[i+1][cnt]=dp[i+1][cnt]+dp[i][j],我所理解的就是在i+1这个位置上面我放上cnt这个字符,将之前可行的数目累加到长度为i+1的基础上,其实我认为这个与其说是dp,倒不如说是一种递推。而其中的ac自动机就是用来判断其中新拼凑的单词当中是否出现过类似的字串,出现了就不能够累 阅读全文
posted @ 2013-03-07 20:33 诺小J 阅读(200) 评论(0) 推荐(0) 编辑