hdu5062 简单题
来源:互联网 发布:对数据库的认识 编辑:程序博客网 时间:2024/05/21 00:48
题意:
求区间逆序数的个数,逆序数增加了个要求就是必须要是先升序在降序例如12321或者123321这样的.
思路:
水题直接写就行了,数据范围不大,估计直接求也不会超时,我看见询问只有7种情况,直接打表了,下面给出打表代码和ac代码。
打表
#include<stdio.h>
#include<string.h>
int jude(int now)
{
int num[10] ,nowid = 0;
while(now)
{
num[++nowid] = now % 10;
now /= 10;
}
int tt = nowid / 2 + nowid % 2;
for(int i = 1 ;i < tt ;i ++)
if(num[i] >= num[i+1]) return 0;
for(int i = 1 ;i <= nowid / 2 ;i ++)
if(num[i] != num[nowid-i+1]) return 0;
return 1;
}
int main ()
{
int sum[8];
memset(sum ,0 ,sizeof(sum));
sum[0] = 1;
for(int i = 1 ;i <= 1000000 ;i ++)
{
int now = jude(i);
if(now && i <= 1000) printf("%d*\n" ,i);
if(i <= 10) sum[1] += now;
if(i <= 100) sum[2] += now;
if(i <= 1000) sum[3] += now;
if(i <= 10000) sum[4] += now;
if(i <= 100000) sum[5] += now;
if(i <= 1000000) sum[6] += now;
}
for(int i = 0 ;i <= 6 ;i ++)
printf("%d**\n" ,sum[i]);
getchar();
return 0;
}
AC
#include<stdio.h>
int main ()
{
int t ,n;
scanf("%d" ,&t);
while(t--)
{
scanf("%d" ,&n);
if(n == 0)printf("%d\n" ,1);
if(n == 1)printf("%d\n" ,9);
if(n == 2)printf("%d\n" ,18);
if(n == 3)printf("%d\n" ,54);
if(n == 4)printf("%d\n" ,90);
if(n == 5)printf("%d\n" ,174);
if(n == 6)printf("%d\n" ,258);
}
return 0;
}
求区间逆序数的个数,逆序数增加了个要求就是必须要是先升序在降序例如12321或者123321这样的.
思路:
水题直接写就行了,数据范围不大,估计直接求也不会超时,我看见询问只有7种情况,直接打表了,下面给出打表代码和ac代码。
打表
#include<stdio.h>
#include<string.h>
int jude(int now)
{
int num[10] ,nowid = 0;
while(now)
{
num[++nowid] = now % 10;
now /= 10;
}
int tt = nowid / 2 + nowid % 2;
for(int i = 1 ;i < tt ;i ++)
if(num[i] >= num[i+1]) return 0;
for(int i = 1 ;i <= nowid / 2 ;i ++)
if(num[i] != num[nowid-i+1]) return 0;
return 1;
}
int main ()
{
int sum[8];
memset(sum ,0 ,sizeof(sum));
sum[0] = 1;
for(int i = 1 ;i <= 1000000 ;i ++)
{
int now = jude(i);
if(now && i <= 1000) printf("%d*\n" ,i);
if(i <= 10) sum[1] += now;
if(i <= 100) sum[2] += now;
if(i <= 1000) sum[3] += now;
if(i <= 10000) sum[4] += now;
if(i <= 100000) sum[5] += now;
if(i <= 1000000) sum[6] += now;
}
for(int i = 0 ;i <= 6 ;i ++)
printf("%d**\n" ,sum[i]);
getchar();
return 0;
}
AC
#include<stdio.h>
int main ()
{
int t ,n;
scanf("%d" ,&t);
while(t--)
{
scanf("%d" ,&n);
if(n == 0)printf("%d\n" ,1);
if(n == 1)printf("%d\n" ,9);
if(n == 2)printf("%d\n" ,18);
if(n == 3)printf("%d\n" ,54);
if(n == 4)printf("%d\n" ,90);
if(n == 5)printf("%d\n" ,174);
if(n == 6)printf("%d\n" ,258);
}
return 0;
}
0 0
- hdu5062 简单题
- hdu5062——Beautiful Palindrome Number(模拟)
- 简单题
- 简单题
- 简单题
- 简单题
- 简单题
- 简单题
- 简单题
- 简单题
- 简单题
- NYOJ 821 简单求值【简单题】
- 简单比较中的题
- 一道简单题,劳神。。。
- 词语接龙【简单题】
- UVa 10055 简单题
- 简单逻辑题
- 简单的继承题
- GZ格式文件压缩
- mesh文件和skeleton文件内容解析和骨骼动画原理
- .NET快速开发平台(DevExpress)免费下载
- javascript命名空间的学习
- Oracle中job的使用详解
- hdu5062 简单题
- Spring Data —— 完全统一的API?
- 指针数组&&数组指针||指针函数&&函数指针
- 2014.10.15总结(ListView)
- Cocos2d-x3.2 Grid3D网格动作
- 获取外置卡、内置卡、USB路径的封装类
- erlang学习笔记:语法基础
- centos 下安装memcached
- 【Java.IO】I/O 【字节】【处理流】 - 之 - 【压缩流】 - ZipInputStream,ZipOutputStream