煙大ACM新秀賽 E手機尾號評分

2021-06-29 13:06:10 字數 1610 閱讀 3864

30年的改革開放,給中國帶來了翻天覆地的變化。2011全年中國手機產量約為11.72億部。手機已經成為百姓的基本日用品!

給手機選個好聽又好記的號碼可能是許多人的心願。但號源有限,只能輔以有償選號的方法了。

這個程式的目的就是:根據給定的手機尾號(4位),按照一定的規則來打分。其規則如下:

1. 如果出現連號,不管公升序還是降序,都加5分。例如:5678,4321都滿足加分標準。

2. 前三個數字相同,或後三個數字相同,都加3分。例如:4888,6665,7777都滿足加分的標準。注意:7777因為滿足這條標準兩次,所以這條規則給它加了6分。

3. 符合aabb或者abab模式的加1分。例如:2255,3939,7777都符合這個模式,所以都被加分。注意:7777因為滿足這條標準兩次,所以這條標準給它加了2分。

4. 含有:6,8,9中任何乙個數字,每出現一次加1分。例如4326,6875,9918都符合加分標準。其中,6875被加2分;9918被加3分。

尾號最終得分就是每條標準的加分總和!

第一行是乙個整數n(<100),表示下邊有多少輸入行,接下來是n行4位一組的資料,就是等待計算加分的手機尾號。

n行整數。

14

3045

0211

2345

6543

7777

8888

7878

7788

6688

2424

2244

9918

6789

8866

005

68123

3511

385

/*

*檔名稱: .cpp

*作 者: 冷基棟

*完成日期:2023年3月29日

*版 本 號:v1.0

*/#include using namespace std;

int main()

{ int n,m,a,b,c,d,k;

cin >> n ;

while (n > 0)

{k=0;

cin >> m;

d = m % 10;

c = (m/10) % 10;

b = (m/100) % 10;

a = m/1000;

if ((a-b==-1)&&(b-c==-1)&&(c-d==-1))

k+=5;

if ((a-b==1)&&(b-c==1)&&(c-d==1))

k+=5;

if (a==c&&b==c)

k+=3;

if (b==c&&c==d)

k+=3;

if (a==b&&c==d)

k+=1;

if (a==c&&b==d)

k+=1;

if (a==6||a==8||a==9)

k+=1;

if (d==6||d==8||d==9)

k+=1;

if (b==6||b==8||b==9)

k+=1;

if (c==6||c==8||c==9)

k+=1;

cout<

我的方法太爛了。。。。。。

SWJTU第十六屆 ACM「新秀杯」網路預選賽題解

a 卷 描述眾所周知,資訊學院是個卷怪聚集的地方,大佬們經常研究一場考試結束後自己是否能拿第一名。參與排名的共有n位同學,每個同學的當前總分為a i。在考試結束後,第一名會得到n分,第二名會得到n 1分,以此類推,但每個人每場考試的排名不會相同。現在想知道,剩下的最後一場考試結束後,有多少人有可能成...

ACM省賽總結

第一次參加acm,打算水一次,為了大二積攢經驗。可是,賽後,經驗卻談不上 這次,總的來說,沉痛,沉痛的打擊啊。這時我才意識到,什麼是殘酷!我的隊友甚至開始懷疑人生,說到這裡,我不得不承認,我也懷疑自己到底是不是真的有能力一直搞下去,但是作為乙個團隊的核心,我不能表現出頹廢,否則我們隊就真的散了。隊友...

ACM 校賽總結

輸入的時候 scanf函式 應該注意輸入乙個字串並把每個字元分別放在乙個字元陣列中的過程中時,應該用 s char str 1050 scanf s str 這樣可以讀取乙個字串 並把每乙個字元都分別放到相應的字元陣列的位置注意點 對時間要求苛刻的直接用scanf printf 可以理解為向量對結構...