PAT甲级1049 Counting Ones (30 分):[C++题解]统计1的个数、数位统计
文章目录
- 题目分析
- 题目链接
题目分析
来源:PAT网站
分析:
以数字abcdefg这个7位数字为例,说一下本题的思路。
1)数字1在每一位出现的次数。
2)以第d位为例,第d位的取值可以分为3种情况,d=0 、d=1和d>1。 在这些情况下,_ _ _ 1 _ _ _ 这样的数总共有多少个呢?比如d=0时,如下图情况1,为了不超过abc0efg这个数,并且满足_ _ _ 1 _ _ _ ,那么前三位就不能是abc,而只能取000~abc-1,后三位可以取000 ~ 999随便取。
用变量left
与right
来记录d左边的数和右边的数等于多少,然后用变量power
来表示这1位的权值,比如下面power =1000.
AC代码
#include<bits/stdc++.h>
using namespace std;
const int N = 1e9;
int n;int calc(int n){vector<int> nums;//把n放到nums中,低位在前while(n) nums.push_back(n%10), n/=10;int res = 0;//从最高位开始枚举for(int i =nums.size()-1 ;i >=0 ;i--){int d = nums[i]; // 第d位//第d位左边的数left,第d位右边的数right,power 表示权值int left = 0 ,right = 0, power =1;//计算左边的值,高位for(int j =nums.size()-1; j > i; j--) left = left * 10 + nums[j];//计算右边的值,低位for( int j = i -1; j >= 0; j--){right = right * 10 + nums[j];power *= 10; //权值}//如果d ==0if( d ==0) res += left * power;//如果 d ==1 else if (d == 1) res += left * power + right +1;//如果 d >1 else res += (left + 1) * power;}return res; }
int main (){cin >> n;cout<<calc(n)<<endl;}
题目链接
PAT甲级1049 Counting Ones (30 分)
https://www.acwing.com/problem/content/1535/
PAT甲级1049 Counting Ones (30 分):[C++题解]统计1的个数、数位统计相关推荐
- PAT甲级1004 Counting Leaves (30分):[C++题解]树、邻接表存储树、dfs遍历树
文章目录 题目分析 题目链接 题目分析 题意重述:一棵树,求每一层的叶子节点数目. 分析 构造树,使用邻接表来存(相当于存储有向图). 需要一个头结点数组h[N],然后每个头节点往外形成一个单链表e[ ...
- PAT甲级1072 Gas Station (30 分):[C++题解]dijkstra算法、最短路
文章目录 题目分析 题目来源 题目分析 来源:acwing 分析: 所有的dist[ ]都≤Ds:最小的dist[ ]最大; dist[ ] 总和最大. 由于加油站是字符,为了简单起见,将m个加油站编 ...
- PAT甲级1155 Heap Paths (30 分):[C++题解]堆、堆的遍历、树的遍历、dfs输出路径、完全二叉树建树
文章目录 题目分析 题目链接 题目分析 来源:acwing 分析: 堆首先是完全二叉树,所以先建完全二叉树,由于给定的是层序遍历的数据,所以直接用数组即可,注意数组下标从1开始,这样便满足结点u和左儿 ...
- PAT甲级1107 Social Clusters (30 分):[C++题解]并查集,爱好、人数
文章目录 题目分析 题目链接 题目分析 来源:acwing 分析: 凭爱好,分人群.注意点:爱好可传递.什么意思?意思是A和B的有共同爱好1, B和C有共同爱好2,那么认为A和C也是同一群人. 按照爱 ...
- PAT甲级1103 Integer Factorization (30 分):[C++题解]背包问题,DP解法
文章目录 题目分析 题目链接 题目分析 分析 把N(样例中N=169)看成背包的体积:把k(样例中k=5)看成背包能承的重量.把这道题转化为二维完全背包问题.由于数据范围给出的次幂P∈[2,7],那么 ...
- PAT甲级1139 First Contact (30 分):[C++题解] 图论、暴力枚举两个点、hash映射
文章目录 题目分析 题目链接 题目分析 来源:acwing 题目分析: 图论模拟题. 给定暗恋的两个人A 和B,需要寻找一对C 和D ,满足:A和C是朋友,C和D是朋友,D和B是朋友.而且A.C同性别 ...
- PAT甲级1131 Subway Map (30分):[C++题解]堆优化dijkstra、单源最短路、地铁地图、巧妙地建图套dijkstra模板!!
文章目录 题目分析 题目链接 题目分析 原题: 来源:acwing 分析: 建图:所有能走到的点之间建立一条边,比如下面一条地铁线路有4站,它们是相通的,两两之间建一条边,边权是经过的站点数. 下面考 ...
- PAT甲级1111 Online Map (30分):[C++题解]两次dijkstra求单源最短路、保存路径、长度最短、时间最短
文章目录 题目分析 题目链接 题目分析 来源:acwing 分析:dijkstra求单源最短路的题目. 只是写两遍而已,第一遍求按照路径长度求,第二遍按照时间最少求. 另外加一个vector路径的判断 ...
- PAT甲级1030 Travel Plan (30分):[C++题解]dijkstra求单源最短路、保存路径
文章目录 题目分析 题目链接 题目分析 来源:PAT网站 分析 dijkstra模板默写过来,然后多了一个保存路径,使用数组pre[N]记录最短路上每个点的前驱,通过pre数组保存到vector中 v ...
最新文章
- m-orchastration system
- matlab 图像中用text文字标注
- 缓存区溢出检测工具BED
- 软件测试用python一般用来做什么-想要成为一个优秀的软件测试人员,应该学些什么?...
- python编码规范手册-PEP8 Python 编码规范整理
- Treap原理和实现方法
- OpenCV访问像素点的灰度值
- 新手攻略熔炉_我的世界攻略:生存模式新手攻略
- 物流配送系统设计java,ZigBee物流配送系统设计
- Windows8之hyper-v探索
- mac下electron始终安装不成功解决办法
- Matlab图像处理—锐化滤波器
- Visio2013激活/破解
- steamvr自定义按键_SteamVR SDK更新:带来运动平滑、自定义控制器键等多项功能
- linux删除svn版本库
- android开发面试问题,这个回答让我错失offer!好文推荐
- 看动画理解「链表」实现LRU缓存淘汰算法
- PC微信逆向--在线备份数据库
- 码云与与GitHUB的对比及使用码云使用细节
- w10不能访问网络计算机,win10系统无法访问局域网电脑的具体教程
热门文章
- css 样式使用方法的累积
- Win8离线添加Net Framework 3.5功能
- varchar和Nvarchar区别 ----转载
- .Net Discovery系列之十一-深入理解平台机制与性能影响 (中)
- mysql远程连接数据库的二种方法_mysql 远程连接数据库的二种方法
- 用神经网络的衰变假设理解神经网络的翻译行为
- ps怎么把一个颜色替换成另一个颜色_常用的60个PS技巧,助你成为PS大神!
- 【控制】《多智能体系统的协同群集运动控制》陈杰老师-目录
- 1.13 总结-深度学习第三课《结构化机器学习项目》-Stanford吴恩达教授
- STM32 进阶教程 11 - RAM中运行程序