题目链接: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. JavaScript 注释规范

    JavaScript 注释规范 总原则 As short as possible(如无必要,勿增注释).尽量提高代码本身的清晰性.可读性. As long as necessary(如有必要,尽量详尽 ...

  2. js coverage testing

    js coverage testing 测试覆盖率 istanbul 伊斯坦堡/伊斯坦布尔 https://istanbul.js.org/ jest coverage https://jestjs. ...

  3. Learning JavaScript with MDN (call, apply, bind)

    Learning JavaScript with MDN (call, apply, bind) call, apply, bind Object.prototype.toString() 检测 js ...

  4. css grid layout in practice

    css grid layout in practice https://caniuse.com/#search=grid subgrid https://caniuse.com/#search=cal ...

  5. Dart http库

    推荐下我写的一个http库ajanuw_http 最基本的获取数据 import 'package:http/http.dart' as http; main(List<String> a ...

  6. 10月份上线的NGK有什么不同之处?

    近日,有小道消息传出公链项目NGK即将在10月上线的消息.各大社区纷纷开始布局,市场中关于NGK项目的消息也变得更多了起来.仅是社区热度这一点,对比之下就已经优于很多项目,那么是否还有其他优势呢?让我 ...

  7. [转]Linux下scp的用法

    http://blog.51cto.com/yaksayoo/175719 scp就是secure copy,一个在linux下用来进行远程拷贝文件的命令.有时我们需要获得远程服务器上的某个文件,该服 ...

  8. Unity3d 拖拽脚本报错Can't add the script component "" because the script class cannot be found

    解决办法: ①报错原因:文件名与文件内容中的类名不相符. ②关闭360.鲁大师等防护软件,重新安装系统.

  9. Python算法_两数之和(01)

    给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,数组中同一个元素不能使用两遍. ...

  10. Scrapy项目_苏宁图书信息

     苏宁图书(https://book.suning.com/) 目标: 1.图书一级分类 2.图书二级分类 3.图书三级分类 4.图书名字 5.图书作者 6.图书价格 7.通过Scrapy获取以上数据 ...