NOIP 2010 數字統計

2021-08-22 17:59:00 字數 994 閱讀 9710

題目描述:

請統計某個給定範圍 [l, r]的所有整數中,數字 2 出現的次數。

比如給定範圍 [2, 22],數字 2 在數 2 中出現了 1 次,在數 12 中出現 1 次,在數 20 中出現 1 次,在數 21 中出現 1 次,在數 22 中出現 2 次,所以數字 2 在該範圍內一共出現了 6 次。

輸入:2 個正整數 l 和 r,之間用乙個空格隔開。

輸出:數字 2 出現的次數。

分析:因為是單組資料,所以可以直接for一遍從l到r,然後將每個數字的每一位分離出來,這就需要乙個迴圈依次取出每一位,有乙個2,計數器就+1,然後輸出即可。因為平時的輸入資料一般是多組,所以習慣性地打表記錄做到每次o(1)的查詢,用乙個字首和陣列sum維護到第幾個數字的時候2所出現的次數,最後輸出sum[r]-sum[l-1]即可。

#include#include#include#include#include#include#include#include#include#include#include#include#include#include#define clear(x) memset(x,0,sizeof(x))

#define fup(i,a,b) for(int i=a;ib;i--)

#define rfdn(i,a,b) for(int i=a;i>=b;i--)

typedef long long ll;

typedef unsigned long long ull;

using namespace std;

const int maxn =1e5+7;

int sum[maxn];

int read()

while(ch>='0'&&ch<='9')

return f*ret;

}void slove()

sum[i]+=cnt;

sum[i]+=sum[i-1];

}}int main()

NOIP2010 普及組 數字統計

題目鏈結 題目描述 請統計某個給定範圍 l,r 的所有整數中,數字 2 出現的次數。比如給定範圍 2,22 數字 2 在數 2 現了 1 次,在數 12 現 1 次,在數 20 現 1次,在數 21 現 1 次,在數 22 現 2次,所以數字 2 在該範圍內一共出現了 6次。輸入格式 2個正整數 l...

noip2010 關押罪犯

s 城現有兩座監獄,一共關押著n 名罪犯,編號分別為1 n。他們之間的關係自然也極 不和諧。很多罪犯之間甚至積怨已久,如果客觀條件具備則隨時可能爆發衝突。我們用 怨 氣值 乙個正整數值 來表示某兩名罪犯之間的仇恨程度,怨氣值越大,則這兩名罪犯之 間的積怨越多。如果兩名怨氣值為c 的罪犯被關押在同一監...

NOIP2010關押罪犯

s 城現有兩座監獄,一共關押著n 名罪犯,編號分別為1 n。他們之間的關係自然也極不和諧。很多罪犯之間甚至積怨已久,如果客觀條件具備則隨時可能爆發衝突。我們用 怨氣值 乙個正整數值 來表示某兩名罪犯之間的仇恨程度,怨氣值越大,則這兩名罪犯之間的積怨越多。如果兩名怨氣值為c 的罪犯被關押在同一監獄,他...