heu acm基礎訓練 1001

2021-06-27 08:20:35 字數 849 閱讀 4089

哈爾濱工程大學 online judge acm訓練之分治演算法

原題大意:求a ,b,之間的數有多少個1,包括a,b.

這題典型的分治演算法;

舉例說明:

以197為例:

那麼我們將其分為個位,十位,個位7上有乙個,那麼在190~197上有7+1個

然後整十位上的為18,即197/10-1,然後其權值將變為10。如此進行。

源**:

#include

#define n 11

int d[n],value;

int deal(int n)

int one ,ten ;

if(t<=0)

one=n%10;

ten=n/10;

n/=10;

for(int i=0;i<=one;i++)

d[i]+=value;

while(ten)

d[ten%10]+=value*(one+1);

ten/=10;

for(int i=0;id[i]+=value*n;

d[0]-=value;

value*=10;

deal(n-1);

int main()

int a,b;

while(scanf("%d%d",&a,&b))

if(!a,!b)

break;

if(aswap(a,b);

value=1;

deal(a);

value=-1;

deal(b-1);

printf("%d\n",d[1]);

d【】中存有0~9的個數,題目的話只用d[1]即可。

ccf測試基礎訓練

逆時針旋轉90度,通過陣列下標轉換實現 include include int data 1020 1020 int datax 1020 1020 int main for i 0 ifor j 0 jdatax j i data i m j 1 for i 0 ifor j 0 jprintf ...

演算法基礎訓練(二)

1.統計逆序對數 10分 c時間限制 1 毫秒 c記憶體限制 1 kb 題目內容 設a 1.n 是乙個包含n個非負整數的陣列。如果在i j的情況下,有a i a j 則 i,j 就稱為a中的乙個逆序對。要解決的問題是,給出乙個數列,求出這個數列包含多少個逆序對 輸入描述 有多組測試資料,每組資料佔一...

基礎訓練 晶元測試

問題描述 有n 2 n 20 塊晶元,有好有壞,已知好晶元比壞晶元多。每個晶元都能用來測試其他晶元。用好晶元測試其他晶元時,能正確給出被測試晶元是好還是壞。而用壞晶元測試其他晶元時,會隨機給出好或是壞的測試結果 即此結果與被測試晶元實際的好壞無關 給出所有晶元的測試結果,問哪些晶元是好晶元。輸入格式...