BZOJ3530:[SDOI2014]数数——题解】的更多相关文章

3530: [Sdoi2014]数数 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 322  Solved: 188[Submit][Status] Description 我们称一个正整数N是幸运数,当且仅当它的十进制表示中不包含数字串集合S中任意一个元素作为其子串.例如当S=(22,333,0233)时,233是幸运数,2333.20233.3223不是幸运数.     给定N和S,计算不大于N的幸运数个数. Input 输入的第一行包含整数…
数数 bzoj-3530 Sdoi-2014 题目大意:给你一个整数集合,求所有不超过n的正整数,是的它的十进制表示下不能再一段等于集合中的任意数. 注释:$1\le n \le 1200$,$1\le |S|\le 100$,$1\le L\le 1500$,L是总长度之和. 想法:咳咳,显然,我们... ...什么都不想,看着能开下先把AC自动机扔出来 然后,其实数位dp就可以了 具体看代码 最后,附上丑陋的代码... ... #include <iostream> #include &l…
[SDOI2014]数数 这题的前置知识是AC自动机和dp,前置题目是 [JSOI2007]文本生成器,前置题目我写的题解 题解-[JSOI2007]文本生成器.我的讲解假设你做过上面那道题. 这题比上面那题多个条件,我因此多调了 \(3\) 个小时.多的条件:答案要不大于整数 \(n\).所以AC自动机部分同上,改变dp部分. 解:\(dp[i][j][k]\) 表示文本串(幸运数)长度为 \(i\),结尾是AC自动机上的节点 \(j\),\(k\) 表示这个文本串下一个字符是否受 \(n\)…
[BZOJ3530]数数(AC自动机,动态规划) 题面 BZOJ 题解 很套路的\(AC\)自动机+\(DP\) 首先,如果长度小于\(N\) 就不存在任何限制 直接大力\(DP\) 然后强制限制不能走到带有标记的点上面 如果长度恰好为\(N\)的长度 那么,要考虑是否恰好卡在范围里面 于是\(DP\)状态多记一维 表示是否卡在范围里面 最后求一下和就行啦 #include<iostream> #include<cstdio> #include<cstdlib> #in…
AC自动机/数位DP orz zyf 好题啊= =同时加深了我对AC自动机(这个应该可以叫Trie图了吧……出边补全!)和数位DP的理解……不过不能自己写出来还真是弱…… /************************************************************** Problem: 3530 User: Tunix Language: C++ Result: Accepted Time:1008 ms Memory:33956 kb **************…
3530: [Sdoi2014]数数 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 682  Solved: 364 Description 我们称一个正整数N是幸运数,当且仅当它的十进制表示中不包含数字串集合S中任意一个元素作为其子串.例如当S=(22,333,0233)时,233是幸运数,2333.20233.3223不是幸运数.    给定N和S,计算不大于N的幸运数个数. Input 输入的第一行包含整数N.    接下来一行一个整数M,…
3530: [Sdoi2014]数数 题意:\(\le N\)的不含模式串的数字有多少个,\(n=|N| \le 1200\) 考虑数位DP 对于长度\(\le n\)的,普通套路DP\(g[i][j]\)即可 对于长度\(=n\)的,需要考虑天际线,\(f[i][j][0/1]\)表示从高开始i位走到节点j,是否卡上界的方案数 需要注意的是前导0的处理,不能出现前导0,所以\(f[0]\)往外转移的时候不能走0 #include <iostream> #include <cstdio&…
版权声明: 本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. C#版 - Leetcode 633. 平方数之和 - 题解 Leetcode 633 - Sum of square number 在线提交: https://leetcode.com/problems/sum-of-square-numbers/ 题目描述 给定一个非负整数 c ,你要判断是否存在两个整数 a…
「SDOI2014」数数 题目描述 我们称一个正整数 \(N\) 是幸运数,当且仅当它的十进制表示中不包含数字串集合 \(S\) 中任意一个元素作为其子串. 例如当 \(S=(\)22, 333, 0233\()\) 时,233 是幸运数,2333.20233.3223 不是幸运数. 给定 \(N\) 和 \(S\),计算不大于 \(N\) 的幸运数个数. 输入格式 输入的第一行包含整数 \(N\). 接下来一行一个整数 \(M\),表示 \(S\) 中元素的数量. 接下来 \(M\) 行,每行…
3530: [Sdoi2014]数数 链接 分析: 对给定的串建立AC自动机,然后数位dp.数位dp的过程中,记录当前在AC自动机的哪个点上,保证不能走到出现了给定串的点. 代码: #include<cstdio> #include<algorithm> #include<cstring> #include<iostream> #include<cmath> #include<cctype> #include<set> #…