導航:首頁 > 源碼編譯 > java演算法大賽

java演算法大賽

發布時間:2023-05-24 15:37:34

java演算法題——龜兔賽跑

packagep1;

importjava.util.Scanner;

/**
*龜兔賽跑
*
*@authoryugi
*/
publicclassTortoiseHare
{
publicstaticfinalStringT="T";
publicstaticfinalStringR="R";
publicstaticfinalStringD="D";

privatestaticvoidrace(intv1,intv2,intt,ints,intl,
intstart1,intstart2,ints1,ints2,inttime,
booleanrest)
{
if(
v1<0||v2<0||t<0||s<0||l<0
||v1>100||v2>100||t>300||s>10||l>10000
||l%v1!=0||l%v2!=0
)
{
try
{
thrownewException("參數輸入不合標消敬搜准!");
}
catch(Exceptione)
{}
}
else
{
//兔子或烏龜已經到達終點
if(s1>=l||s2>=l)
{
if(s1>s2)
{
System.out.println(R);
System.out.println(time+start1);
}
elseif(s1<s2)
{
System.out.println(T);
System.out.println(start2);
}
else
{
System.out.println(D);
System.out.println(start2);
}
return;
}

//兔子開始休息
if(!rest&&s1-s2>=t)
{
rest=true;
time+=s;
}

//兔子休息了s秒(不包括s秒,第s秒開始行動,題目意思不是s秒之後)
if(rest&&start2-start1>=s)
{
//開始跑了(不休息)
rest=false;
}

//兔子不休息的時候跑
if(!rest)
{
start1++;
s1=v1*start1;
}

//烏龜總在跑
start2++;
s2=v2*start2;

//遞歸調用
race(v1,v2,t,s,l,start1,start2,s1,s2,time,rest);
}
}

publicstaticvoidmain(String[]args)
{
System.out.println("輸入只有一行,包含用空格拿歷隔開的五個正整數v1,v2,t,s,l,"+
" 其中(v1,v2<=100;t<=300;s<=10;l<=10000且為v1,v2的公倍數)"+
" 退出輸入n/N,否則繼續:");
Scannerscanner=newScanner(System.in);
Stringline=null;
Stringreg="^([1-9]\d*|\d)\s+([1-9]\d*|\d)\s+([1-9]\d*|\d)\s+([1-9]\d*|\d)\s+([1-9]\d*|\d)$";
while(scanner.hasNextLine())
{
line=scanner.nextLine().trim();
if("n".equalsIgnoreCase(line))
{
break;
}
if(!line.matches(reg))
{
System.err.println("輸入不對,重新輸入:");
}
else
{
String[]input=line.split("\s+");
intv1=Integer.parseInt(input[0]);
intv2=Integer.parseInt(input[1]);
intt=Integer.parseInt(input[2]);
ints=稿胡Integer.parseInt(input[3]);
intl=Integer.parseInt(input[4]);
race(v1,v2,t,s,l,0,0,0,0,0,false);
System.out.println("退出輸入n/N,否則繼續:");
}
}
scanner.close();
}
}

② 藍橋杯java比賽時,題目會給出cpu時間限制,如何確定程序運行時間

正常情況下,時間和輸入數據的規模以及你的代碼的時間復雜度相關。如果輸入數據規模不大,那麼編寫代碼時可以不在意時間復雜度的大小,如果輸入的數據規模大,時間限制很小時,比如排序10000個數時,採用冒泡等時間復雜度為為O(n^2)的排序演算法時就會超時,需考慮使用快排、桶排序等時間復雜度較低的演算法進行排序。

③ ACM競賽是什麼

ACM(國際大學生程序設計競賽)ACM-Association for Computing Machinery , 即國際計算機學會。CPC-International Collegiate Programming Contest , 即國際大學生程序設計競賽·。
ACM國際大學生程序設計競賽(英文全稱:ACM International Collegiate Programming Contest(ACM-ICPC或ICPC)是由國際計算機學會(ACM)主辦的,一項旨在展示大學生創新能力、團隊精神和在壓力下編寫程序、分析和解決問題能力的年度競賽。經過近30多年的發展,ACM國際大學生程序設計競賽已經發展成為最具影響力的大學生計算機競賽。賽事目前由IBM公司贊助。
ACM國際大學生程序設計競賽已成為世界各國大學生最具影響力的國際級計算機類的賽事, 是廣大愛好計算機編程的大學生展示才華的舞台,是著名大學計算機教育成果的直接體現,是信息企業與世界頂尖計算機人才對話的最好機會。
該項競賽分區域預賽和國際決賽兩個階段進行,各預賽區第一名自動獲得參加世界決賽的資格,世界決賽安排在每年的3~4月舉行,而區域預賽安排在上一年的9~12月在各大洲舉行。
ACM/ICPC的區域預賽是規模很大、范圍很廣的賽事。僅在2003年參加區域預賽的隊伍就有來自75個國家(地區),1411所大學的3150支代表隊,他們分別在127個賽場中進行比賽,以爭奪全球總決賽的73個名額,其激烈程度可想而知。2005年第30屆ACM/ICPC亞洲賽區預賽共設了北京、成都、漢城、東京等11個賽站,來自亞洲各國知名高校的各個代表隊進行了激烈的角逐.

④ 演算法競賽是什麼意思

演算法競賽,指的是以演算法(和數據結構)為核心主題的編程競賽。

演算法競賽一般要求在規定時間內做若幹道題目,並以編程的方式解決問題,可以使C/C++/Java等語言。演算法競寒陵猛中較為出名的有:國際大學生程序設計競賽(ICPC),中國大學生程序設計競賽(CCPC),藍橋杯…參加競賽對於自身能力的提高以及日後就業、考研都有一定的幫助。

3、培養計算思維和邏輯思維。一道演算法題往往需要綜合多種能力,例如數據結構、演算法知識、數學方法、流程和邏輯等,這是計算思維和邏輯思維能力的體現。

4、培養團隊合作精神。在軟體行業,團隊合作非常重察汪兄要。像ICPC、CCPC這樣的團隊賽,把對團隊合作的要求放在了重要位置。

閱讀全文

與java演算法大賽相關的資料

熱點內容
音頻壓縮編碼標准 瀏覽:300
常提到的app是表示什麼 瀏覽:261
天津程序員傳銷 瀏覽:349
下班之後的程序員 瀏覽:71
檢測支持ssl加密演算法 瀏覽:344
衢州發布新聞什麼APP 瀏覽:83
中國移動長沙dns伺服器地址 瀏覽:249
wifi密碼加密了怎麼破解嗎 瀏覽:598
linux命令cpu使用率 瀏覽:67
linux實用命令 瀏覽:238
傳奇引擎修改在線時間命令 瀏覽:109
php取域名中間 瀏覽:898
cad命令欄太小 瀏覽:830
php開發環境搭建eclipse 瀏覽:482
qt文件夾名稱大全 瀏覽:214
金山雲伺服器架構 瀏覽:230
安卓系統筆記本怎麼切換系統 瀏覽:620
u盤加密快2個小時還沒有搞完 瀏覽:93
小米有品商家版app叫什麼 瀏覽:94
行命令調用 瀏覽:436