賽碼解題報告(四)

2021-07-23 00:19:04 字數 3088 閱讀 8992

聊天題目描述 輸入

第一行資料四個整數:p,  q,  l,  r (1≤  p, q≤50, 0≤l ≤r≤1000)。接下來p行資料每一行有一對整數ai, bi (0≤ aidj。

樣例輸入

2 3 0 20

15 17

23 26

1 47 11

15 17 輸出

輸出能夠進行聊天的合適的起床時間點的個數。

樣例輸出2

本題只需對區間內的每個t進行嘗試即可,但要注意兩個區間不相交的條件~

#include

struct time;

int p,q,l,r;

bool pa(int a,int b,int c,int d)

bool judgement(time a,time b)

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

return 0;}

噴水裝置

題目描述

小賽家有一塊草坪,長為20公尺,寬為2公尺,媽媽要他給草坪澆水,在草坪上放置半徑為ri的噴水裝置,每個噴水裝置可以給以它為中心的半徑為實數ri(1<ri<15)的圓形區域澆水。他家有充足的噴水裝置i(1<i<600)個,並且一定能把草坪全部濕潤。你能幫他計算一下,把整個草坪全部濕潤,最少需要幾個噴水裝置。

輸入輸入第乙個數字為噴水裝置的個數n,後面n個數字分別為n個噴水裝置的半徑r,r表示該噴水裝置能覆蓋的圓的半徑。

噴水裝置i的範圍為:1<i<600,半徑的範圍為:1<ri<15。

樣例輸入

52 3.2 4 4.5 6 輸出

輸出所用裝置的個數。

樣例輸出2

選擇語言:

請選擇語言

編譯器環境說明

執行 提交**

本題著實是有一些坑,要注意好數學問題,圓形覆蓋長方形結果為正方形,鏈結見——

所以每次減去的為sqrt(r*r-1)*2;還要注意double為ld輸入

#include

#include

#include

int cmp(const void *a,const void *b)

int main()

else

}printf("%d\n",indexx);

return 0;}

三分線題目描述

每次小賽都喜歡通過改變三分線的大小來讓自己支援的a隊獲取更大的優勢。現給出兩個隊伍投籃得分的距離,小賽希望你能夠幫他選擇乙個合理的三分線,使得a隊優勢最大。

輸入輸入資料報含兩行。

第一行第乙個數為n(1≤n≤2*105), 表示a隊進球數,接下來n個正整數表示a隊每次進球的投籃位置ai(1≤ai≤2*109)。 

第二行第乙個數為m(1≤m≤2*105),表示b隊進球數,接下來m個正整數表示b隊每次進球的投籃位置bi(1≤bi≤2*109)。

樣例輸入

3 1 2 3

2 5 6 輸出

乙個整數,表示a隊得分減去b隊得分的最大值 

樣例輸出3

本題比較複雜,首先對於a中的距離和d中的距離排序,再分別按次序從第乙個為2分球其餘為三分球開始計算,類似於歸併排序???

然後對於邊界上的點再進行處理。

#include

#include

#include

#include

using namespace std;

int max(int a, int b)

int getscore(int index_minscore3, int n)

int getv(vectorvec_1, vectorvec_2)

else if(vec_1[i] > vec_2[j])else

}if(i==vec_1.size() && j==vec_2.size())

maxscore = max(maxscore, getscore(i,vec_1.size())-getscore(j,vec_2.size()));

if(imaxscore = max(maxscore, getscore(i,vec_1.size())-getscore(j,vec_2.size()));

if(i==vec_1.size() && jmaxscore = max(maxscore, getscore(i,vec_1.size())-getscore(vec_2.size(),vec_2.size()));

return maxscore;

}int main()

scanf("%d", &m);

vectorvec_2;

vec_2.resize(m);

for(int i=0;iscanf("%d", &vec_2[i]);

}int res = getv(vec_1, vec_2);

printf("%d\n", res);

return 0;}

字元判斷

題目描述

判斷字串b的所有字元是否都在字串a中出現過,a、b都是可能包含漢字的字串。b中重複出現的漢字,那麼a中也要至少重複相同的次數。漢字使用gbk編碼(簡單的說,用兩個位元組表示乙個漢字,高位元組最高位為1的代表漢字,低位元組最高位可以不為1)。

int is_include(char *a, char *b); 

返回0表示沒有都出現過,返回1表示都出現過。 

請設計乙個演算法。

輸入從標準輸入中讀取輸入內容,檔案中的內容如下

字串a\n字串b

樣例輸入

aaaabbbcccdddss

abc

輸出標準輸出中輸出0或者1

樣例輸出1

本題直接逐個判斷即可,注意用map之後可以使其更加簡單~

#include

#include

#include

#include

#include

using namespace std;

bool is_include(char *s1,char *s2)

for (int j = 0; j < t2; j++)

return true;

}int main()

賽碼解題報告(1)

題目描述 果園裡有堆蘋果,n 1 n 9 只熊來分。第一隻熊把這堆蘋果平均分為n份,多了乙個,它把多的乙個扔了,拿走了乙份。第二隻熊把剩下的蘋果又平均分成n份,又多了乙個,它同樣把多的乙個扔了,拿走了乙份,第 三 第四直到第n隻熊都是這麼做的,問果園裡原來最少有多少個蘋果?輸入輸入1個整數,表示熊的...

Block Voting 解題報告

這道題做的有點狼狽,效率不高,差一點就tle的ac了。看status裡的,ac的時間大多數都是0ms的。肯定有乙個更有效率的演算法的。下面說下我的狼狽演算法。出處 http acm.jlu.edu.cn joj showproblem.php?pid 1223 問題描述 求每個party的權值。第i...

Safebreaker 解題報告

又是吉林大學一道acm題目,題目很簡單,直接暴力解決。出處 http acm.jlu.edu.cn joj showproblem.php?pid 1718 問題描述 對乙個給定數0000 9999 根據一系列猜測,判斷這個數是否存在,存在的話,是否唯一 例如 3321,給定數 作出猜測,1223 ...