-
题目链接 题意:有n扇门,n种钥匙,一一对应。每扇门打开后可能得到k把钥匙(k可能为0)。一扇门还可以用一颗炸弹炸开。现在问要开所有门,使用炸弹的期望个数。 思路:状态压缩。用一个二进制串表示每扇门能打开的门的信息,对应的位上为1表示能打开,为0表示不能打开。 状态是可以传递的。。 如果第i扇门能打开门k,那么能打开第i扇门的第j扇门也可以打开门k。 状态压缩以及传递的过程可以很容易用bitset来维护,这才是bitset的正确打开姿势 相当于用floyd做了一个传递闭包。(floyd的有一层循环隐藏在了bitset中,复杂度没有改变,但是常数小) 最后对于期望的计算方法:统计能打开第i扇门的方案数计为cnt,这cnt的方案中,只有 …
Read More -
题目链接 题意:给出一个数,问包含这个数三个数组成的勾股数,输出另外两个数。 思路: 所谓勾股数,就是当组成一个直角三角形的三边长都为正整数时,我们就称这一组数为勾股数. 那么,组成一组勾股数的三个正整数之间,是否具有一定的规律可寻呢?下面我们一起来观察几组勾股数: 规律一:在勾股数(3,4,5)、(5,12,13)、(7,24,25)(9,40,41)中,我们发现 由(3,4,5)有:32=9=4+5 由(5,12,13)有:52=25=12+13 由(7,24,25)有:72=49=24+25 由(9,40,41)有:92=81=40+41. 即在一组勾股数中,当最小边为奇数时,它的平方刚好等于另外两个连续的正整数之和.因此,我 …
Read More -
题目链接 题意:把一个数n(n<1000)转化成二进制输出。。。 思路:。。。搜acm bitset 搜到这题。。。所以其实这并不是“bitset”优化的题。。。只是题目名字交这个了2333。 还是用bitset过掉了。。。不过不知道怎么处理高位0.。。 所以这是一次bitset的错误示范(逃 /* *********************************************** Author :111qqz Created Time :2016年08月21日 星期日 16时10分50秒 File Name :code/hdu/2051.cpp …
Read More -
题目链接 题意:n个城市,m条双向路,要从k条中选择一个,使得到其他n-k个城市中的某个城市的距离最短。 思路:直接暴力 枚举。1A /* *********************************************** Author :111qqz Created Time :2016年08月20日 星期六 21时02分14秒 File Name :code/cf/#368/B.cpp ************************************************ */ #include <cstdio> #include <cstring> #include …
Read More -
题目链接 。。。这题也能成hack题。。。。有毒啊。。然后我room里所有人都写对了。。。是我看这道题看得太早了? /* *********************************************** Author :111qqz Created Time :2016年08月20日 星期六 21时01分57秒 File Name :code/cf/#368/A.cpp ************************************************ */ #include <cstdio> #include <cstring> #include <iostream> …
Read More -
hdu 1754 题目链接 题意:单点更新,区间查询最大值。 思路:线段树。 一开始借鉴了clj的pointer写法。。wjmzbmr's code 直接MLE。。。看来也许只能在cf上用。。。 下面是MLE的代码: /* *********************************************** Author :111qqz Created Time :2016年08月18日 星期四 18时40分24秒 File Name :code/hdu/1754.cpp ************************************************ */ #include <cstdio> …
Read More -
hdu 3065 病毒侵袭持续中 (ac自动机)
Aug 17, 2016 · 2 min read题目链接 题意:给出n个病毒的模式串,问每个病毒串在文本串中出现了多少次。 思路:ac自动机。模式串只由大写字母组成。文本串是所有可视字符。 如果动态128会MLE.做法是换成静态数组写法,或者对于每次Search的时候,出现非大写字母的字符特判一下。 /* *********************************************** Author :111qqz Created Time :2016年08月18日 星期四 00时17分38秒 File Name :code/hdu/3065.cpp ************************************************ */ …
Read More -
hdu 2896 题目链接 题意:给出n个病毒,然后给出m个网站,然后问每个网站中有哪些病毒,以及有病毒的网站的个数。 需要注意病毒和网站都需要按从小到达排列输出。 思路:ac自动机,需要记录病毒id...然后。。因为病毒的id忘记排序wa了好多发。。智力减2. /* *********************************************** Author :111qqz Created Time :2016年08月16日 星期二 19时53分24秒 File Name :code/hdu/2896.cpp ************************************************ */ …
Read More -
orzorz 日常%学弟 华科的未来orz #include <cstdio> #include <cstring> using namespace std; struct tnode { int s; tnode *f, *w, *c[26]; } T[5000000], *Q[5000000]; int C; inline tnode *tnew() { memset(T + C, 0, sizeof(tnode)); return T + C++; } inline void AcaInsert(tnode *p, const char *s) { while (*s) { int u = *s - …
Read More