题目链接:http://acm.hznu.edu.cn/OJ/problem.php?id=2797

题意:求1-N中有多少数字满足:

  1. x是正整数且无前导0。
  2. x(mod 666) = S(x)。
  3. 6在x这个数的各数位上出现的总次数必须为奇数。

题解:数位dp模板题(当时考核的时候忘记了板子当场去世)

Ac代码:

 1 #include<iostream>
2 #include<algorithm>
3 #include<vector>
4 #include<cstring>
5 #include<cstdio>
6 using namespace std;
7 #define mem(s,n) memset(s,n,sizeof s);
8 #define ios {ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); }
9 typedef long long ll;
10 const int maxn=5e6+1;
11 const int Inf=0x7f7f7f7f;
12 const ll Mod=1e9+7;
13 int dp[55][2][500][667];
14 string s;
15 int dfs(int now,int last,int sum,int mod,bool lim)//now表示当前位数,last=0表示前面有偶数个6,last=1表示前面有奇数个6,sum表示
16 { // 前几位数之和,mod表示对666取余后的数字,lim判断是否达到上界。
17 if(now==-1)
18 {
19 if(mod==sum&&(last&1)) return 1;
20 //last & 1 这个表达式可以用来判断last的奇偶性。二进制的末位为0表示偶数,最末位为1表示奇数
21 return 0;
22 }
23 if(!lim&&~dp[now][last&1][sum][mod]) return dp[now][last&1][sum][mod];
24 int up=lim?s[now]-'0':9;
25 ll ans=0;
26 for(int i=0;i<=up;i++)
27 {
28 ans+=dfs(now-1,last+(i==6),sum+i,(mod*10+i)%666,lim&&i==up);
29 ans%=Mod;
30 }
31 if(!lim) dp[now][last&1][sum][mod]=ans;
32 return ans;
33 }
34 int main()
35 {
36 int t;
37 scanf("%d",&t);
38 mem(dp,-1);
39 while(t--)
40 {
41 cin>>s;
42 reverse(s.begin(),s.end());//倒置函数因为要从最高位开始。
43 printf("%d\n",dfs(s.length()-1,0,0,0,1));
44 }
45 return 0;
46 }

2020年Acm暑期考核Hznu _2797的更多相关文章

  1. ACM暑期训练总结

    ACM暑期集训总结报告 不知不觉,ACM暑期集训已经过去了一个月了(其实我还差几天才够一个月,因为最后几天要回家办助学贷款,所以没坚持到最后,当了个逃兵.....[汗])也到了结束的时候.在这一个月中 ...

  2. 中南大学2018年ACM暑期集训前期训练题集(入门题) X: 又一道简单题

    简直智障,上一题V题,样例输出里面的“Case:”不要输出,到了这题又是要输出的了 #include<iostream> using namespace std; int num[1000 ...

  3. 中南大学2018年ACM暑期集训前期训练题集(入门题) Q: Simple Line Editor

    数据有毒,一个一个读字符是错,整个字符串读入,一次就A了. 总之,数据总是没有错的,还是对c++了解地不够深刻,还有,在比赛中,一定要有勇气重构代码 错误代码: #include<iostrea ...

  4. 中南大学2018年ACM暑期集训前期训练题集(入门题) J : A Simple Problem

    毒瘤哇!为什么要用long long 啊!!!这个题没有加法操作啊,为什么会爆int啊!!!! 思路: http://www.cnblogs.com/buerdepepeqi/p/9048130.ht ...

  5. 2156: 中南大学2018年ACM暑期集训前期训练题集(入门题) D: 机器人的指令

    不要用gets!不要用gets!不要用gets! 不要用gets!不要用gets!不要用gets! 不要用gets!不要用gets!不要用gets! 不要用gets!不要用gets!不要用gets! ...

  6. 2017 ACM暑期多校联合训练 - Team 9 1008 HDU 6168 Numbers (模拟)

    题目链接 Problem Description zk has n numbers a1,a2,...,an. For each (i,j) satisfying 1≤i<j≤n, zk gen ...

  7. 2017 ACM暑期多校联合训练 - Team 5 1008 HDU 6092 Rikka with Subset (找规律)

    题目链接 Problem Description As we know, Rikka is poor at math. Yuta is worrying about this situation, s ...

  8. 2017 ACM暑期多校联合训练 - Team 4 1007 HDU 6073 Matching In Multiplication (模拟)

    题目链接 Problem Description In the mathematical discipline of graph theory, a bipartite graph is a grap ...

  9. 2017 ACM暑期多校联合训练 - Team 4 1012 HDU 6078 Wavel Sequence (模拟)

    题目链接 Problem Description Have you ever seen the wave? It's a wonderful view of nature. Little Q is a ...

随机推荐

  1. Gym 101170F Free Weights(二分)题解

    题意:给出两行,每一行都有n个数组,一共有2 * n个,大小为1~n,每个有两个.现在可以进行操作:拿出一个物品i,然后放到一个空格,花费i.可以任意平移物品,平移没有花费.每一行空间无限.要求你把一 ...

  2. play games for learning web skills

    play games for learning web skills CSS flexbox https://codepip.com/games/flexbox-froggy/ CSS grid ht ...

  3. STAR 法则

    STAR 法则 STAR: Situation, Task, Action, Result 一. 什么是 STAR 法则? STAR法则是情境(situation).任务(task).行动(actio ...

  4. App Store Connect

    App Store Connect https://developer.apple.com/support/app-store-connect/ https://developer.apple.com ...

  5. React & Didact

    React & Didact A DIY guide to build your own React https://github.com/pomber/didact https://gith ...

  6. 发布npm包时,发布源码,而不是dist后的打包文件

    基于webpack-scaffold 此脚手架配置 删除.gitignore文件中对dist文件夹的无视配置 修改package.json文件 { "private": true, ...

  7. vue页面切换过渡

    <!--<transition name="slide-left">--> <router-view></router-view>& ...

  8. lms微服务框架介绍

    lms 框架简介 Lms是一个旨在通过.net平台快速构建微服务开发的框架.具有稳定.安全.高性能.易扩展.使用方便的特点.lms内部通过dotnetty实现高性能的rpc通信,使用zookeeper ...

  9. python中的enumerate 函数(编号的实现方式)

    enumerate 函数用于遍历序列中的元素以及它们的下标: 默认从0开始,如果想从1开始,可以仿照最后案例 加上逗号,和数字编号 >>> for i,j in enumerate( ...

  10. eclipse中lombok注解不生效

    现象:eclipse中在对象上使用lombok的@Data,引用get方法时,没有set.get方法. 解决办法: 1.在lombok官网(https://www.projectlombok.org/ ...