日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

hdu5062 简单题

發布時間:2025/6/17 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hdu5062 简单题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題意:
? ? ? 求區間逆序數的個數,逆序數增加了個要求就是必須要是先升序在降序例如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; ??
}
? ?
? ?
? ?








? ?
? ?
? ?





總結

以上是生活随笔為你收集整理的hdu5062 简单题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。