山东理工热身赛
Special Judge Ⅰ
Time Limit:?1000MS Memory Limit:?65536KB Submit StatisticProblem Description
SDUT OJ 上默認的評測機制是嚴格?ICPC 模式,它要求提交的程序運行輸入數據后的輸出結果和標準答案完全一致。
而 Special Judge 是一種特殊的評判模式,它允許程序的輸出結果和測試數據(標準答案)在一定范圍內即使不同,也可以被判定為 Accepted。
通常,Special Judge 會通過運行一個特判程序來檢測用戶的輸出是否符合要求。
?
現在以最簡單的浮點數誤差的特判程序為例,假設允許的最大浮點誤差為 eps = 1e-2(即 10^(-2) = 0.01),如果用戶的輸出為 0.125,測試數據為 0.128,則誤差為?0.003 <?1e-2,判定為?Accepted。代碼實現如下:
?
if(fabs(user_out - std_out) <= eps) {printf("Accepted\n"); } else {printf("Wrong Answer\n"); }?
現在 Stone 提交了若干次代碼,你需要寫一個特判程序來判斷他的答案是否正確。
不過出題人并沒有告訴你他想設置的 eps 是多少,只告訴你范圍是 1e0, 1e-1, 1e-2, 1e-3, 1e-4, ..., 1e-14 這十五個中的一個,你需要猜一個 eps 并寫出符合要求的特判程序。
Input
輸入數據有多組(數據組數不超過 100),到 EOF 結束。
對于每組數據,輸入 2 個浮點數 a, b,其中 a 表示 Stone 的程序運行結果,b 表示后臺測試數據。
保證 a, b 均在 double 范圍內。
Output
對于每組數據,如果 Stone 的程序正確,輸出一行?"Accepted",否則輸出一行 "Wrong Answer"(輸出不包括引號)。
Example Input
1.00 1.0 62.55 66.233Example Output
Accepted Wrong AnswerHint
示例?C 語言代碼中,fabs() 是絕對值函數,需要頭文件 math.h。
精度誤差 eps 建議定義為 double 型,例如,猜 eps 為 1e-6,則寫成:double eps = 1e-6;
請使用 double 型讀入數據。
 
 
 
 
 
 
 
hint:這道題eps為1e-9;
 
 
 
Special Judge Ⅱ
Time Limit:?1000MS Memory Limit:?65536KB Submit StatisticProblem Description
Q:什么是 Special Judge,Special Judge 的題目有什么不同?
A:一個題目可以接受多種正確答案,即有多組解的時候,題目就必須被 Special Judge。Special Judge 程序使用輸入數據和一些其他信息來判答程序的輸出,并將判答結果返回。
NaYe 最近遇到了一個題,要求輸出三個數,第三個數為前兩個數的和,三個數都是素數,且前兩個數小于?500000。他只需要輸出任意一組符合要求的答案即認為是 Accepted。現在需要你做的是判斷 NaYe 的程序運行結果對不對。
Input
輸入數據有多組(數據組數不超過 100),到 EOF 結束。
每組數據輸入 a, b, c 三個整數。含義同題目描述。
a, b, c 均在 int 范圍內。
Output
對于每組數據,如果 NaYe 的程序正確輸出 “Accepted”,否則輸出 “Wrong Answer”(輸出不包括引號)。
Example Input
1 1 1 2 3 5 3 5 8Example Output
Wrong Answer Accepted Wrong AnswerHint
Author
MLE_kenan?#include<stdio.h>
#include<math.h>
bool IsPrime( int num ) ?
{ ?
? ? ?int tmp =sqrt( num*1.0); ?
if(num<2)
return false;
? ? ?for(int i= 2;i <=tmp; i++) ?
? ? ? ? if(num %i== 0) ?
? ? ? ? ? return false ; ?
? ? ?return true ; ?
} ?
int main(){
int a,b,c;
while(scanf("%d%d%d",&a,&b,&c)!=EOF)
{
if(a+b == c){
if(IsPrime(a)==true && IsPrime(b)==true && IsPrime(c)==true)
{
if(a<500000 && b<500000)
printf("Accepted\n");
}
else
printf("Wrong Answer\n");
}
else
printf("Wrong Answer\n");
}
return 0;
}
 
 
Special Judge Ⅲ
Time Limit:?1000MS Memory Limit:?65536KB Submit StatisticProblem Description
Q:什么是 Special Judge,Special Judge 的題目有什么不同?
A:一個題目可以接受多種正確方案,即有多組解的時候,題目就必須被 Special Judge。Special Judge 程序使用輸入數據和一些其他信息來判答你程序的輸出,并將判答結果返回。
不抽黑貞與咸魚有什么區別?
?
?
5月3日 FGO(Fate/Grand Order) 贗作活動來襲,MLE 開始了他的玄學抽卡:
他在 n 個小方塊上寫上數字,并按照先后順序往上堆,在堆的過程中他會隨機性的把上面的小方塊抽走,堆完以后再依次從上往下把剩余沒抽完的小方塊抽走。按照小方塊抽走的先后順序排列開來(先拿走的小方塊放最前面),之后再隨機選擇一個小方塊,這個小方塊上面的數字就表示活動開始以后的若干秒后開始抽卡。
不幸的是由于過于激動把小方塊抽走的先后順序給忘了,MLE 向閑來無事的 keke 求助,讓他給出一個序列看自己能不能想起來,但為了避免浪費時間,MLE 希望 keke 給出的序列符合小方塊抽走后排列的順序,現在問題留給你,由你來判斷這個序列是否合法。
Input
多組數據輸入直到文件結尾。
第一行先輸入一個數 n (0 <= n <= 1000) 表示小方塊的個數。
第二行輸入 n 個數表示小方塊上的數字,均為正整數。
第三行輸入 keke 給出的序列,長度與小方塊個數一致。
所有數據范圍均為 [0, 1000]。
Output
Keke 的答案正確輸出 "Accepted",否則輸出 "Wrong Answer"(不包括引號)。
Example Input
5 1 2 3 4 5 5 4 3 2 1Example Output
AcceptedHint
當 n 為 0 時認為是 "Accepted"。
Author
MLE_kenan?
 
利用出棧
 
 
瘋狂的bLue
Time Limit:?1000MS Memory Limit:?65536KB Submit StatisticProblem Description
眾所周知神秘的 ACM 實驗室有一個史詩級的出題狂魔,名曰--bLue。最近 bLue 又露出了邪惡的笑,原來是 bLue 接了為校賽出題的單子。
距離校賽開始還有 N 小時,由于各種奇怪的原因出題組可以出題的時間并不固定,大致可以分為M個時間段。每個時間段可以出的題目數也可能不同。同時由于出題是個煞費心血的事情,所以每個出題時間段結束后,善良的bLue會讓大家休息 R (1 ≤?R?≤?N?) 小時,以便為接下來的出題事業繼續奮斗。
為了能為校賽準備盡可能多的題目以備不時之需,bLue 需要好好地規劃好這 N 小時如何安排,當然作為唯一的長者,bLue 一下子就為大家規劃好了如何安排出題的時間段。
現在 bLue 想考考你在他完美的安排下出題組最多可以出多少個題目?
Input
測試數據有多組,輸入直到文件結束
第一行輸入三個數 N (1 ≤?N?≤ 1,000,000), M (1 ≤?M?≤ 1,000), R (1 ≤?R?≤?N)。
接下來有 M 行輸入,每一行輸入三個數 Si (0 ≤ Si < N), Ei (Si < Ei ≤?N)?,Vi (1 ≤ Vi ≤ 1,000,000), (0 < i <= M),分別表示為第 i 個時間段的開始時間,第 i 段的結束時間,第 i 個時間段可以出的題目數。
Output
對于每組數據輸出出題組最多可以出的題的數目。
Example Input
15 5 3 1 4 5 6 9 4 3 5 2 7 10 8 11 15 2Example Output
13Hint
假設出題組在第 5 小時出完了一個時間段的題,他們需要休息 3 小時 (R = 3),那么他們在第 8 小時又可以繼續開始出題了。
Author
Ninaye?數據結構中圖的遍歷
 
 
 
上色的紗霧
Time Limit:?1000MS Memory Limit:?65536KB Submit StatisticProblem Description
紗霧畫畫功力首屈一指,現在她準備上色了,這時候她在想,怎樣上色的時間最短呢?
在這里我們把問題簡化,平面圖抽象成坐標軸,需要上色的地方抽象成 n 個點,紗霧有 m 支畫筆。
開始的時候紗霧可以選擇讓畫筆落在坐標軸任意一點上,之后每次移動畫筆一個單位的距離都會花費 1 秒(畫筆可以左右移動,紗霧強大的能力可以同時移動 m 枝畫筆,涂色的時間忽略不計)。現在紗霧想要知道這 n 個點全部上完色最少要多少時間呢?
相信你一定能讓可愛的紗霧露出這樣的表情的:
Input
多組輸入。
首先輸入兩個以空格分隔的整數 n, m(1 <= n, m <= 10^5)。分別表示需要上色的點以及紗霧擁有的畫筆的數量。
接下來一行是 n 個以空格分隔的整數(絕對值保證不超過 10^9)。
Output
對于每組數據,輸出一個整數,表示紗霧需要的最少時間(秒)。
Example Input
3 2 1 4 8 3 1 1 2 9 4 2 1 2 3 6Example Output
3 8 2Hint
兩支畫筆,第一支畫筆初始地點選擇 1,第二支畫筆初始地點選擇地點 8。
那么 3s 后第一支畫筆可以到達地點 4,這樣 3 個點就可以全部涂上了。
Author
UMR?
 
總結
                            
                        - 上一篇: 你不知道的电脑36个小技巧(纪念2011
 - 下一篇: word 垂直居中