【数位DP】【HDU 4507】吉哥系列故事——恨7不成妻
来源:互联网 发布:张无忌最爱赵敏 知乎 编辑:程序博客网 时间:2024/04/30 21:04
http://acm.hdu.edu.cn/showproblem.php?pid=4507
无聊写个水DP
#include <cstdio>#include <cstring>#include <cstdlib>#include <iostream>#include <cmath>#include <algorithm>using namespace std;#define rep(i,l,r) for(int i=(l),_=(r);i<=_;i++)#define per(i,r,l) for(int i=(r),_=(l);i>=_;i--)#define MS(arr,x) memset(arr,x,sizeof(arr))#define INE(i,u) for(int i=head[u];~i;i=e[i].next)#define LL long long#define X first#define Y secondinline const int read(){int r=0,k=1;char c=getchar();for(;c<'0'||c>'9';c=getchar())if(c=='-')k=-1;for(;c>='0'&&c<='9';c=getchar())r=r*10+c-'0';return k*r;}////////////////////////////////////////////////const LL mod=1000000007;LL l,r;struct data{LL cnt,s1,s2;};data dp[20][7][7];int bit[20];LL pow10[20];////////////////////////////////////////////////data dfs(int pos,int bitsum,int sum,bool limit){if(!pos) return bitsum!=0&&sum!=0?(data){1,0,0}:(data){0,0,0};if(!limit && ~dp[pos][bitsum][sum].cnt) return dp[pos][bitsum][sum];int upp=limit?bit[pos]:9;data ans=(data){0,0,0};rep(i,0,upp) if(i!=7){data ret=dfs(pos-1,(bitsum+i)%7,(sum*10+i)%7,limit&&i==upp);ans.cnt=ans.cnt+ret.cnt;if(ans.cnt>=mod) ans.cnt-=mod;LL x=i*pow10[pos]%mod;ans.s1=ans.s1+ret.s1+ret.cnt*x%mod;if(ans.s1>=mod) ans.s1-=mod;if(ans.s1>=mod) ans.s1-=mod;ans.s2+=ret.s2;if(ans.s2>=mod) ans.s2-=mod;ans.s2+=2*ret.s1%mod*x%mod;if(ans.s2>=mod) ans.s2-=mod;ans.s2+=ret.cnt*x%mod*x%mod;if(ans.s2>=mod) ans.s2-=mod;}if(!limit) dp[pos][bitsum][sum]=ans;return ans;}LL cal(LL n){for(*bit=0;n;n/=10) bit[++*bit]=n%10;return dfs(*bit,0,0,1).s2;}////////////////////////////////////////////////void input(){ cin>>l>>r;}void solve(){LL ans=cal(r)-cal(l-1);if(ans<0) ans+=mod;cout<<ans<<endl; }////////////////////////////////////////////////int main(){ freopen("_.in","r",stdin); freopen("_.out","w",stdout); MS(dp,-1); pow10[1]=1; rep(i,2,20) pow10[i]=pow10[i-1]*10%mod; rep(i,1,read()) input(),solve(); return 0;}
0 0
- [数位DP]HDU 4507——吉哥系列故事——恨7不成妻
- HDU 4507 吉哥系列故事——恨7不成妻(数位DP)
- hdu 4507 吉哥系列故事——恨7不成妻 数位DP
- hdu 4507 吉哥系列故事——恨7不成妻(数位DP,5级)
- HDU 4507 吉哥系列故事——恨7不成妻(数位DP)
- 【数位DP】HDU 4507 吉哥系列故事——恨7不成妻
- HDU 4507 吉哥系列故事——恨7不成妻(数位DP)
- 数位dp HDU 4507 吉哥系列故事——恨7不成妻
- hdu 4507 吉哥系列故事——恨7不成妻 (数位dp)
- [数位dp] hdu 4507 吉哥系列故事——恨7不成妻
- 【HDU】4507 吉哥系列故事——恨7不成妻 数位DP
- 【数位DP】【HDU 4507】吉哥系列故事——恨7不成妻
- HDU ACM 4507 吉哥系列故事——恨7不成妻 ->数位DP
- hdu 4507 - 吉哥系列故事——恨7不成妻(数位dp)
- HDU 4507 吉哥系列故事——恨7不成妻(数位DP)
- [HDU 4507] 吉哥系列故事——恨7不成妻 数位dp
- hdu 4507 吉哥系列故事——恨7不成妻 数位dp
- HDU 4507 吉哥系列故事——恨7不成妻(数位DP)
- java——压缩文件或者文件夹
- 虚析构函数
- 史上最简单Robotium跨进程操作实践——基于ADB框架
- 游戏程序新模块添加流程
- 时分秒换算
- 【数位DP】【HDU 4507】吉哥系列故事——恨7不成妻
- crontab经验
- 在SQLSERVER中创建DBLINK,操作远程服务器数据库
- php设置$_ENV值的几种方法
- onClick、onLongClick、onTouch
- java中的重载
- XP和windows8.1序列号
- iOS NSPredicate 查询、搜索, 各种验证, 正则表达式
- 解决无法访问Google的问题(目前已…