南阳理工---题目975关于521

news/2024/11/29 20:36:45/

关于521

时间限制: 1000 ms  |  内存限制: 65535 KB
难度: 2
描述

Acm队的流年对数学的研究不是很透彻,但是固执的他还是想一头扎进去。

浏览网页的流年忽然看到了网上有人用玫瑰花瓣拼成了521三个数字,顿时觉得好浪漫,因为每个男生都会不经意的成为浪漫的制造者。此后,流年走到哪里都能看到521三个数字,他怒了,现在他想知道在连续的数中有多少数全部包含了这三个数字。例如12356就算一个,而5111就不算。特别的,如果他看到了521三个数连续出现,会特别的愤怒。例如35210

输入
多组测试数据:
一行给定两个数a,b(0<a,b<1000000),表示数字的开始和结束。
输出
一行显示他想要知道的数有几个及显示有多少个数字令他特别的愤怒。用空格隔开。
样例输入
200 500
300 900
1 600
样例输出
Case 1:2 0
Case 2:2 1
Case 3:6 1
来源
流年
上传者
ACM_安鹏程

分析:直接求解是超时超时的代码:

#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
int main()
{char a[100];int n,m;int k=1;while(cin>>n>>m){int t1=0;int t2=0;int b1,b2,b3;for(int i=n;i<=m;i++){b1=0;b2=0;b3=0;sprintf(a,"%d",i);         //将整数i转化为字符串int len=strlen(a);for(int i=0;i<len;i++){if(a[i]=='5'&&a[i+1]=='2'&&a[i+2]=='1'){t2++;break;}if(a[i]=='5')b1=1;if(a[i]=='2')b2=1;if(a[i]=='1')b3=1;if(b1&&b2&&b3){t1++;break;}}}printf("Case %d:",k++);printf("%d %d\n",t1+t2,t2);}return 0;
}
正确的代码:

#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
struct dot
{int t1;int t2;
};
dot a[1000050];
int main()
{int n,m;int k=1;int t1=0,t2=0;memset(a,0,sizeof(a));for(int i=100;i<1000000;i++){if((i%10==1||i/10%10==1||i/100%10==1||i/1000%10==1||i/1000%10==1||i/10000%10==1||i/100000==1)&&(i%10==2||i/10%10==2||i/100%10==2||i/1000%10==2||i/1000%10==2||i/10000%10==2||i/100000==2)&&(i%10==5||i/10%10==5||i/100%10==5||i/1000%10==5||i/1000%10==5||i/10000%10==5||i/100000==5))t1++;if(i%1000==521||i/10%1000==521||i/100%1000==521||i/1000==521)t2++;a[i].t1=t1;a[i].t2=t2;}while(cin>>n>>m){printf("Case %d:%d %d\n",k++,(a[m].t1-a[n-1].t1),(a[m].t2-a[n-1].t2));}return 0;
}



http://www.ppmy.cn/news/535928.html

相关文章

Leetcode_二分 975.奇偶跳

975.奇偶跳 //二分搜索 O(nlogn) O(n) int oddEvenJumps(vector<int>& A) {const int nA.size();vector<vector<int> > dp(n,vector<int>(2));dp[n-1][0]dp[n-1][1]1;map<int,int> mp; //<value,index> BSTmp[A[n-1]]n-1;int ans…

2018年排名Top 100的Java类库——在分析了277,975份源码之后得出的结论

最近&#xff0c;OveOps公布了The Top 100 Java Libraries in 2018 - Based on 277,975 Source Files&#xff0c;Hollis查看了这份榜单&#xff0c;做了翻译和补充&#xff0c;向你展示2018年的风云Java类库&#xff0c;希望可以给正在使用Java的你一些帮助和启示。不能说榜单…

【简单题string】A. Aramic script(Codeforces Problem-975A)

A. Aramic script codeforces题目链接Problem-975A 题意&#xff1a; 输入n个字符串&#xff0c;对每个字符串去重后&#xff0c;就是一个根对象&#xff0c;输出有多少根对象。比如样例一&#xff0c;a,aa,aaa,ab,abb&#xff0c;去重后的是字符串是a,a,a,ab,ab。所以只有a,a…

SWUST OJ#973 #975 #976 #977 统计二叉树节点个数

目录 #975 统计利用先序遍历创建的二叉树的度为2的结点个数 题目 思路 代码 #976 统计利用先序遍历创建的二叉树的度为1的结点个数 题目 思路 代码 #973 统计利用先序遍历创建的二叉树叶结点(0度)的个数 题目 思路 代码 #977 统计利用先序遍历创建的二叉树中的空链…

swust oj 973,975,976,977统计利用先序遍历创建的二叉树叶结点,度为2结点,度为1,空链域结点的个数,

统计利用先序遍历创建的二叉树叶结点&#xff0c;度为2结点&#xff0c;度为1&#xff0c;空链域结点的个数 思路&#xff1a; 1.叶节点即是左孩子和右孩子都空的节点 注&#xff1a;叶节点个数sum必须要用全局变量 题目描述 利用先序递归遍历算法创建二叉树并计算该二叉树叶结…

codeforce975D:Ghosts(思维)

题目链接&#xff1a;点击打开链接 题目大意&#xff1a; 这个题目的题面真的坑&#xff0c;个人感觉其实不是很难&#xff0c;但是我当时做完3题之后完全看不懂D题的题意&#xff0c;又感觉是个计算几何就直接扔那没管了。唉&#xff0c;其实知道题意之后蛮简单的&#xff0c…

Codeforces-975C - Valhalla Siege - 思维

题解链接&#xff1a; https://www.lucien.ink/archives/204/ 题目链接&#xff1a; http://codeforces.com/contest/975/problem/C 题目&#xff1a; Ivar the Boneless is a great leader. He is trying to capture Kattegat from Lagertha. The war has begun and wave a…

CF 975D Ghost 数学(基础)

题意:yaxb的直线上有n个点,给出这n个点的(x[i],vx[i],vy[i]),(vx[i],vy[i]为第i个点x,y的速度) 当两个点碰撞时,总价值2.n<2e5,-1e9<x[i]<1e9.问总价值为多少? 若(x1,vx1,vy1),(x2,vx2,vy2)能在t秒相遇 x1t*vx[1] x2t*vx[2] y1t*vy[1] y2t*vy[2] 则 (x2-x1)/(vx[…