日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Test on 11/10/2016

發布時間:2023/11/27 生活经验 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Test on 11/10/2016 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

@kaike

1.進制

? (spehex.pas/c/cpp)

【問題描述】

現在給定一個特殊的計數方式,混合進制數。也就是給定一個多位數,每位數上的進制都是不一樣的。

比如給定一個三位數:這三位數的進制分別是2 3 2.也就是最小的位數逢2進1,次小位數逢3進制,最高位逢2進1.

那么,這個混合進制數最小數是0,最大數是121。一共有2*3*2=12個數。

分別是:000,001,010,011,020,021,100,101,110,111,120,121。

如果我想知道第7大的數,就是100.

現在的問題就是,給你每個位數上的進制,你找出從0開始,第k個數是多少?

【輸入】

第一行 一個整數n,表示這個數有n位 n<=30

第二行,n個用空格隔開的整數,依次為最高位到最低位的進制。 保證進制都在十進制以內。

保證這個混合進制數的最大數的編號在int范圍內。

第三行為m,表示m次查詢。m<=6

接下來m行,每行一個整數k,表示要查詢的混合進制數的第k小的數

保證k在int范圍內。

?

【輸出】

?????? m行。每行一個數,表示要查詢的混合進制數的第k小的數在這個混合進制數里的值是多少。

如果超過要求的位數,那么輸出-1

【輸入輸出樣例1】

spehex.in

spehex.out

3

2 3 2

3

7

9

14

100

110

-1

?

抓狂了兩小時,最后A了?

數據太弱了。

 1 #include<iostream>
 2 #include<cstdio>
 3 using namespace std;
 4 int n,b[20],m,k,s[20];
 5 long long sum=1;
 6 int main()
 7 {
 8     freopen("spehex.in","r",stdin);
 9     freopen("spehex.out","w",stdout);
10     cin>>n;
11     for(int i=n;i>0;i--)
12     {    cin>>b[i];
13         sum*=b[i];
14     }
15     cin>>m;
16     for(int i=1;i<=m;i++)
17     {
18         string s1;
19         int j=1;
20         cin>>k;
21         if(k==1)    cout<<0<<endl;
22         else if(k>sum)  cout<<-1<<endl;
23         else{
24             k--;
25             while(k)
26             {
27                 s[j]=k%b[j];
28                 k/=b[j];
29                 j++;
30             }
31             for(int c=j-1;c>0;c--)
32                 cout<<s[c];
33             cout<<endl;
34         }
35     }
36     return 0;
37 }
= =

1.旅行

? (fule.pas/c/cpp)

【問題描述】

??? 小x要去旅游了。他決定開一輛耗油量很高的巨大的拉風的tank去旅游了。

??? 這輛tank有一個巨大的油箱,可以裝滿G升燃油。tank是很費油的,每升燃油只夠tank跑一公里,而小x的旅程要有D公里要跑。

??? 雖然油箱很大,但是,顯然旅途中是需要加油的。

??? 小x得到了旅途中加油站的信息,一共有N個加油站,第i個加油站距離起點的距離為X_i(0 <= X_i <= D),每公升燃油價格為Y_i元(1 <= Y_i <= 1,000,000)。

??? 現在小x想知道,如果出發時,tank里已經有B公升燃油(0 <= B <= D),那么,他最少花費多少錢,可以完成整個旅途。

??? 如果中間因為燃油不夠而無法完成旅程,那么你需要輸出-1.?

【輸入】

第一行4個整數:N,G,B和D

接下來N行,每行兩個整數表示X_i和 Y_i。

?

【輸出】

一個整數,表示完成旅行的最小花費,或者-1。

?

【輸入輸出樣例1】

fule.in

fule.out

4 10 3 17

2 40

9 15

5 7

10 12

174

在第一個加油點 加2升,在第5個加油點加滿10升,再到第10個加油點加2升,一共花費174.

?

【數據范圍】

30% ?數據保證? N<=100 ??G<=1000? D<=10000??

60%? 數據保證? N<=5000 ?G<=1000? D<=10000000?

100% 數據 1 <= G <= 1,000,000? 1 <= D <= 1,000,000,000? 1 <= N <= 50,000

?

輸出-1得30哈哈哈哈

看不懂我放棄了,回來找找貪心的做法。

?

1.旅程

? (journey.pas/c/cpp)

【問題描述】

給出一個長度為 N 的由小寫字母’a’~’z’和’*’組成的字符串 A,一個長度為 M 的僅由小

寫字母’a’~’z’組成的字符串 B。一個’*’可以匹配任意多個字符(包括 0 個)。求在 B 的所有 循環同構串中,有多少個能夠與 A 匹配。

循環同構串:就是把 B 的前 k 個字母(0<=k<M)移到結尾所得到的字符串。例如 abc 的 循環同構串有 abc、bca 和 cab。

A 與 B 匹配:若除了 A 中的’*’號可以匹配 B 中的任意多個字符外,其余字符一一對應, 則稱 A 與 B 匹配。例如 a*b*c 與 aadbc 是匹配的,其中第一個*對應 ad,第二個*對應空串。

?

?

【輸入】

第一行為字符串 A。

第二行為字符串 B。

?

【輸出】

輸出在 B 的所有循環同構串中,有多少個能夠與 A 匹配

?

【輸入輸出樣例1】

journey.in

journey.out

aaaa

aaaa

4

?

【輸入輸出樣例2】

journey.in

journey.out

a*a

aaaaaa

6

【輸入輸出樣例3】

journey.in

journey.out

*a*b*c*

abacabadabacaba

15

?

【數據范圍】

對于 30% 的測試點,M≤20。

對于 80% 的測試點,M≤200。

對于 100% 的測試點,1<=N<=100,1≤M≤100000。

?

這題有好多個題解...然而我不會...

?

轉載于:https://www.cnblogs.com/Kaike/p/6063163.html

總結

以上是生活随笔為你收集整理的Test on 11/10/2016的全部內容,希望文章能夠幫你解決所遇到的問題。

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