hnustOJ 1741 好友互動標識

2021-08-22 10:32:54 字數 1438 閱讀 2156

qq有乙個有趣的功能即顯示好友互動標識,它的規則是這樣的,如果兩個人之間互發訊息連續3天以上(包含3天)則出現擦出火花的標識,如果互發訊息連續30天以上(包含30天)則出現聊得火熱的標識,當出現了聊得火熱的標識時,原來的擦出火花標識會被替換成聊得火熱標識。如果兩個人已經連續互發訊息3天以上(包含3天)或者30天以上(包含30天),之後的一天沒有互發訊息,那麼無論是擦出火花還是聊得火熱的標識都會消失,需要重新開始統計連續的天數才能繼續出現好友互動標識。

jj有x個好友,好友名字用數字編號從1到x的這x個數字表示。給定乙個二維矩陣a描述jj連續n天和她的好友聊天情況(假定在此之前jj和她的好友們沒有聊過天),a[i][j](1<=i<=n,1<=j<=x)表示第i天jj與編號為j的人的聊天情況,如果a[i][j]=1表示jj與編號j的人在第i天聊了天,a[i][j]=0 則表示沒有聊天。a[i][j]只能是0或者1。現在的問題是,根據給出的聊天統計,給出jj在n天後,分別和編號為1到x的好友的聊天狀態是怎樣的。

第一行給定乙個t(t<=10)表示輸入資料組數;

對每一組資料先給定兩個整數n(1<=n<=1000),x(1<=x<=1000)

然後下面給出乙個n行x列的矩陣a,矩陣元素為0或者1,矩陣意義如題意;

對於每一組資料,輸出一行, 即n天後jj與編號1到編號x的好友的聊天狀態。每兩個好友的聊天狀態之間用空格分開。

聊天狀態的輸出表示為以下三種:

(1) 沒有好友互動標識輸出0

(2) 擦出火花輸出1

(3) 聊得火熱輸出2

2

3 20 1

0 11 1

3 21 1

1 11 1

0 1

1 1

最原始的做法:用乙個計數器,當遇到中斷就清零,重新計數,以最終的數字來判斷標識

比較早寫的,**無處不透露出蒟蒻的氣息。。。

#include#includeint a[1000][1000];

int b[1000];

int main()

else if(b[j]==0)

b[j]+=a[i][j];}}

for(j=0;j=0&&b[j]<=2)

printf("0 ");

else if(b[j]>=3&&b[j]<=29)

printf("1 ");

else if(b[j]>=30)

printf("2 ");

}j=x-1;

if(b[j]>=0&&b[j]<=2)

printf("0\n");

else if(b[j]>=3&&b[j]<=29)

printf("1\n");

else if(b[j]>=30)

printf("2\n");

}return 0;

}

hnustOJ 1693 原石法陣

wzh有乙個由原石構成的n階三角形魔法陣,三角形魔法陣如下圖 但是wzh現在想要將這個魔法陣改造成乙個n階五邊形魔法陣,五邊形魔法陣如下圖 wzh發現並不是每乙個n階三角形魔法陣和n階五邊形魔法陣所用的石頭都是一樣的,所以wzh想知道將現在的n階三角形魔法陣改造為n階五邊形魔法陣還需要多少原石?不過...

MT 174 凹凸無妨

已知函式 f x x 3 3x 2 ax b 對任意 a,b in r 存在 x in 3,0 使得 f x le m 成立,求 m 的範圍.求 displaystyle min max x 3 3x 2 ax b 解 由於 begin 6m a,b geq 2 f 3 3 f 2 f 0 geq ...

174 按奇偶排序陣列

題目描述 給定乙個非負整數陣列 a,返回乙個由 a 的所有偶數元素組成的陣列,後面跟 a 的所有奇數元素。你可以返回滿足此條件的任何陣列作為答案。示例 輸入 3,1,2,4 輸出 2,4,3,1 輸出 4,2,3,1 2,4,1,3 和 4,2,1,3 也會被接受。1 a.length 5000 0...