全国信息学奥林匹克联赛(NOIP1010)复赛题目详解
本文所有代码均可放心食用
题目1
- 题目1
- 思路
- 代码
- 题目2
- 思路
- 代码
- 题目3
- 思路
- 代码
- 题目4
- 思路
- 代码
1.数字统计 (two.pas/c/cpp) 【问题描述】 请统计某个给定范围[L, R]的所有整数中,数字 2 出现的次数。 比如给定范围[2, 22],数字 2 在数 2 中出现了 1 次,在数 12 中出现 1 次,在数 20 中出现 1 次,在数 21 中出现 1 次,在数 22 中出现 2 次,所以数字 2 在该范围内一共出现了 6 次。 【输入】 输入文件名为 two.in。 输入共 1 行,为两个正整数 L 和 R,之间用一个空格隔开。 【输出】 输出文件名为 two.out。 输出共 1 行,表示数字 2 出现的次数。 【输入输出样例 1】 two.in two.out 2 22 6 【输入输出样例 2】 two.in two.out 2 100 20 【数据范围】 1 ≤ L ≤R≤ 10000。
思路这道题只需要一个循环然后每一位%10后/10处理即可 例如:123%10=3!=2,123/10=12,12%10=2,12/10=1,1%10=1,1/10=0; 所以无论数字是几位数都可以这样处理
代码#include
#include
#include
#include
using namespace std;
char s;
int n,m;
int main(){
freopen("two.pas.in","r",stdin);
freopen("two.pas.out","w",stdout);
cin>>n>>m;
int ans=0;
for(int i=n;i>t;
for(int i=1;i>m[i];
}
int c=t+1;
int ans=0;
while(cx2>>y2>>n;
for(int i=1;i>a>>b;
e[i].x=(x1-a)*(x1-a)+(yl-b)*(yl-b);
e[i].y=(x2-a)*(x2-a)+(y2-b)*(y2-b);//这里记录距离
}
sort(e+1,e+n+1);
int ans=e[n].x;//这里是为了处理当导弹只有1枚的结果
int c=0;
for(int i=n-1;i>=1;i--){
c=max(c,e[i+1].y);//如果加入的导弹到2的距离更大,那么更新数据,这里取最大值是因为当拦截了最远的导弹,那么其他的导弹就一起拦截了的
ans=min(ans,c+e[i].x);
}
coutn; for(int i=1;ia[i][j]; a[j][i]=a[i][j]; } } int ans=0; for(int i=1;ia[i][n-1]?ans:a[i][n-1];//这里是要记录我们选择的默契值里最大的一个 } cout
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?