题目

琪露诺是个聪明的精灵,她非常擅长和数字有关的游戏 .
直到有一天灵梦进入了迷雾深林,她遇见了琪露诺,并向她提出了一个问题.
统计n个一位数字a组成的数乘以一位数b的结果中有多少个一位数字d.不超过100000组数据.

解析

本来是找规律的题强行被我做成了打表题.
首先找出你的高精度模板,枚举a和b,令n=10,将结果输出如下:(d=0)

81
1 1 0 10
1 2 0 10
1 3 0 10
1 4 0 10
1 5 0 10
1 6 0 10
1 7 0 10
1 8 0 10
1 9 0 10
2 1 0 10
2 2 0 10
2 3 0 10
2 4 0 10
2 5 0 10
2 6 0 10
2 7 0 10
2 8 0 10
2 9 0 10
3 1 0 10
3 2 0 10
3 3 0 10
3 4 0 10
3 5 0 10
3 6 0 10
3 7 0 10
3 8 0 10
3 9 0 10
4 1 0 10
4 2 0 10
4 3 0 10
4 4 0 10
4 5 0 10
4 6 0 10
4 7 0 10
4 8 0 10
4 9 0 10
5 1 0 10
5 2 0 10
5 3 0 10
5 4 0 10
5 5 0 10
5 6 0 10
5 7 0 10
5 8 0 10
5 9 0 10
6 1 0 10
6 2 0 10
6 3 0 10
6 4 0 10
6 5 0 10
6 6 0 10
6 7 0 10
6 8 0 10
6 9 0 10
7 1 0 10
7 2 0 10
7 3 0 10
7 4 0 10
7 5 0 10
7 6 0 10
7 7 0 10
7 8 0 10
7 9 0 10
8 1 0 10
8 2 0 10
8 3 0 10
8 4 0 10
8 5 0 10
8 6 0 10
8 7 0 10
8 8 0 10
8 9 0 10
9 1 0 10
9 2 0 10
9 3 0 10
9 4 0 10
9 5 0 10
9 6 0 10
9 7 0 10
9 8 0 10
9 9 0 10
1111111111
2222222222
3333333333
4444444444
5555555555
6666666666
7777777777
8888888888
9999999999
2222222222
4444444444
6666666666
8888888888
11111111110
13333333332
15555555554
17777777776
19999999998
3333333333
6666666666
9999999999
13333333332
16666666665
19999999998
23333333331
26666666664
29999999997
4444444444
8888888888
13333333332
17777777776
22222222220
26666666664
31111111108
35555555552
39999999996
5555555555
11111111110
16666666665
22222222220
27777777775
33333333330
38888888885
44444444440
49999999995
6666666666
13333333332
19999999998
26666666664
33333333330
39999999996
46666666662
53333333328
59999999994
7777777777
15555555554
23333333331
31111111108
38888888885
46666666662
54444444439
62222222216
69999999993
8888888888
17777777776
26666666664
35555555552
44444444440
53333333328
62222222216
71111111104
79999999992
9999999999
19999999998
29999999997
39999999996
49999999995
59999999994
69999999993
79999999992
89999999991

然后发现中间的数字肯定是同一个,对这个数字打表.(9*9的表)

int i,j,biao[10][10]={{0,0,0,0,0,0,0,0,0,0},//When n is large,the number which will repeat in the result{0,1,2,3,4,5,6,7,8,9},{0,2,4,6,8,1,3,5,7,9},{0,3,6,9,3,6,9,3,6,9},{0,4,8,3,7,2,6,1,5,9},{0,5,1,6,2,7,3,8,4,9},{0,6,3,9,6,3,9,6,3,9},        {0,7,5,3,1,8,6,4,2,9},{0,8,7,6,5,4,3,2,1,9},{0,9,9,9,9,9,9,9,9,9}};

可以发现一般来说中间的数字都是n-1个,那么我们把去掉n-1个数字剩下的数字再打第二个表.

int biao2[10][10]={{0,0,0,0,0,0,0,0,0,0},//When n is large,the number that will remain after removing n-1(n-2) digits of biao[a][b]{0,1,2,3,4,5,6,7,8,9},{0,2,4,6,8,10,12,14,16,18},{0,3,6,9,12,15,18,21,24,27},{0,4,8,12,16,20,24,308,32,36},{0,5,10,15,20,25,30,35,40,45},{0,6,12,18,24,30,36,42,528,54},{0,7,14,21,308,35,42,539,616,63},{0,8,16,24,32,40,528,616,704,72},{0,9,18,27,36,45,54,63,72,81}};

可以看到有一些情况不符合常规,多出来三位数字.我们用几个pair来标记一下.

pii tepan[5]={mp(4,7),mp(6,8),mp(7,7),mp(7,8),mp(8,8)};

然而还没完.当n=1时没有这样的情况,所以要单独拿出来.故AC代码如下.

#pragma GCC optimize("inline")
#include<bits/stdc++.h>
#define pii pair<int,int>
#define mp make_pair
using namespace std;
int t,n,a,b,d;
int main()
{
int i,j,biao[10][10]={{0,0,0,0,0,0,0,0,0,0},//When n is large,the number which while repeat in the result{0,1,2,3,4,5,6,7,8,9},{0,2,4,6,8,1,3,5,7,9},{0,3,6,9,3,6,9,3,6,9},{0,4,8,3,7,2,6,1,5,9},{0,5,1,6,2,7,3,8,4,9},{0,6,3,9,6,3,9,6,3,9},              {0,7,5,3,1,8,6,4,2,9},{0,8,7,6,5,4,3,2,1,9},{0,9,9,9,9,9,9,9,9,9}};
int biao2[10][10]={{0,0,0,0,0,0,0,0,0,0},//When n is large,the number that while remain after removing n-1(n-2) digits of biao[a][b]{0,1,2,3,4,5,6,7,8,9},{0,2,4,6,8,10,12,14,16,18},{0,3,6,9,12,15,18,21,24,27},{0,4,8,12,16,20,24,308,32,36},{0,5,10,15,20,25,30,35,40,45},{0,6,12,18,24,30,36,42,528,54},{0,7,14,21,308,35,42,539,616,63},{0,8,16,24,32,40,528,616,704,72},{0,9,18,27,36,45,54,63,72,81}};
pii tepan[5]={mp(4,7),mp(6,8),mp(7,7),mp(7,8),mp(8,8)};
for (scanf("%d",&t);t--;){int ans=0,tong[10]={0};scanf("%d%d%d%d",&a,&b,&d,&n);if (a>b) swap(a,b);//从两个表当中可以看出a,b是可以交换的if (n==1)//直接计算{int t=a*b;for (;t;t/=10) tong[t%10]++;ans+=tong[d];}else {if (biao[a][b]==d)  {ans=n-1;//一般情况都是n-1个pii t=*lower_bound(tepan,tepan+5,mp(a,b));//看看是不是在特判的五种情况之中if (a==t.first&&b==t.second) ans--;//如果是再减一个}int t=biao2[a][b];//枚举剩下的for (;t;t/=10) tong[t%10]++;ans+=tong[d];}printf("%d\n",ans);}
}

琪露诺实在太强了,算术教室都要打表才能过.

UESTC 1808 琪露诺的算术教室 打表+特判(找规律)相关推荐

  1. 【洛谷】【动态规划+单调队列】P1725 琪露诺

    [题目描述:] 在幻想乡,琪露诺是以笨蛋闻名的冰之妖精. 某一天,琪露诺又在玩速冻青蛙,就是用冰把青蛙瞬间冻起来.但是这只青蛙比以往的要聪明许多,在琪露诺来之前就已经跑到了河的对岸.于是琪露诺决定到河 ...

  2. 洛谷P1725琪露诺【单调队列+dp】

    题目描述 在幻想乡,琪露诺是以笨蛋闻名的冰之妖精. 某一天,琪露诺又在玩速冻青蛙,就是用冰把青蛙瞬间冻起来.但是这只青蛙比以往的要聪明许多,在琪露诺来之前就已经跑到了河的对岸.于是琪露诺决定到河岸去追 ...

  3. 东方幻想乡系列模拟赛T2琪露诺题解

    题目地址: http://fzoj.xndxfz.com/JudgeOnline/problem.php?id=2146&csrf=17peCLMJM49glhqlg9KaD7Agf5o5QY ...

  4. BIT琪露诺的完美算法教室 3.初上征途的za

    题目背景 励志成为全宇宙第一的口袋妖怪大师(咦?)的za终于要踏上了他的旅程.za匆匆忙忙地从大木博士那里拿了几个精灵球,从关都地区的真新镇出发了.没走几步,za来到了神奇的皮卡丘森林,眼前躺满了琳琅 ...

  5. 【DP、线段树优化】琪露诺

    跟去年(2017)PJ第四题几乎是一样的?/吐血 DP方程可以很简单的推出来,f[i]=max{f[k]}+a[i] 然而这样做是O(n^2)的 看一下数据,200000的话要不nlogn 要不n 由 ...

  6. 洛谷 - P1725 琪露诺(动态规划+单调队列优化)

    题目链接:点击查看 题目大意:给出一个由n个节点组成的数轴,每个点上都有一个权值,现在规定当在点x处时,下一步只能去[x+l,x+r]之间的任意一点,现在规定终点是点n之后的所有节点,现在问如何规划路 ...

  7. 琪露诺学习Vue.js的第二天

    道德三皇五帝, 功名夏后商周, 五霸七雄闹春秋, 顷刻兴亡过首. 青史几行名姓, 北茫无数荒丘, 前人撒种后人收, 无非是龙争虎斗! 事件修饰符 1.使用  .stop  阻止冒泡 <div c ...

  8. 离散数学:Peano(皮亚诺) 算术

    Peano(皮亚诺) 算术是由一组刻画自然基本性质的规则组成,其中的4条规则,或称公理.如下: 1) 0是自然数 2) 若x是自然数,则x+1 也是自然数 3) 不存在满足z+1 = 0 的自然数 z ...

  9. jzoj2136-(GDKOI2004)汉诺塔【找规律,模拟】

    正题 大意 将汉诺塔的规则改为只能移动到相邻的柱子,然后求有n个圆盘时在第m步时每个盘所在的位置. 解题思路 我们先将3个盘的移动情况推出来:(1,1,1)->(2,1,1)->(3,1, ...

最新文章

  1. 怎样创造计算机语言,如何创建编译成JavaScript的编程语言
  2. oracle 如何查看oracle数据库版本
  3. python+selenium自动化测试——浏览器驱动
  4. k8s pod健康检查(存活、就绪检查):livenessProbe策略配置示例
  5. react子组件向父组件传递数据实例
  6. poj 2001 Shortest Prefixes(特里)
  7. Centos下安装X Window+GNOME Desktop+FreeNX
  8. 窄带物联网技术有望终结碎片化现状
  9. win7美化_Win10桌面美化实用软件推荐
  10. Unity3D游戏开发之MMD For Unity插件研究
  11. 《视觉SLAM十四讲》笔记摘抄
  12. linux 安装串口驱动安装失败,z-tek(求救Z-TEK串口安装失败,提示:该设备的驱动程序未被安装(代码28)这个inf中的服务安装段落无效?)...
  13. python开发工程师需要掌握什么技能 知乎_全栈工程师自述:我的编程能力为什么突飞猛进?|知乎4千4百赞...
  14. 输入下载页面链接自动获取ipa下载地址,支持本地下载,支持蒲公英和fir及绝大多数自定义下载页
  15. SQL Server事物日志
  16. 孑然一身,离人何曾是归人
  17. tomcat修改配置文件ip为服务器真实ip
  18. 图片访问错误显示碎图
  19. 王国维先生的“人生三大境界”
  20. Android 如何获取唯一性ID实践

热门文章

  1. POJ_1200 Crazy Search ( Hash映射 )
  2. html美化select样式,select样式美化(简单实用)
  3. Python课设实验 之 爬虫应用——校园网搜索引擎(使用bs4进行数据分析.)
  4. POJ - 1611 The Suspects
  5. node-xlsx 生成并下载有超链接的excel文件
  6. 别再找借口了!找不到工作还不好好学一下这份16W字Java面试合集
  7. python 指定时间递增_用python输出未来时间,递增
  8. 5. TGI指数分析实战
  9. Invalid Bundle Structure - The binary file ‘axhzmj-mobile.app/SDK/CSJ/BUCNAuxiliary.framework/BUCNAu
  10. java程序中集合框架有哪些