成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

2018第九屆藍(lán)橋杯Java b組總結(jié)

codecook / 748人閱讀

摘要:現(xiàn)在小明想統(tǒng)計有哪些帖子曾經(jīng)是熱帖。如果一個帖子曾在任意一個長度為的時間段內(nèi)收到不少于個贊,小明就認(rèn)為這個帖子曾是熱帖。以下行列代表一張海域照片。照片保證第行第列第行第列的像素都是海洋。

2018年4月1日愚人節(jié),我第一次參加了有關(guān)計算機(jī)算法類比賽“藍(lán)橋杯”,這篇算是經(jīng)驗總結(jié)和題目回顧,水平有限,有不妥之處歡迎留言批評指正,也可以加QQ891465170交流~
下面進(jìn)入正題:
第一題:第幾天
2000年的1月1日,是那一年的第1天。 那么,2000年的5月4日,是那一年的第幾天?

注意:需要提交的是一個整數(shù),不要填寫任何多余內(nèi)容。

哈哈這激動的啊,太簡單直接腦算,結(jié)果坑爹了,我把閏年二月記成28天普通年29天,直接錯了,送分題都沒拿到。

解法:2000年是閏年二月有29天,一月和三月有31天,四月有30天,所以:
31+29+31+30+4=125
第二題:方格記數(shù)
如圖p1.png所示,在二維平面上有無數(shù)個1x1的小方格。

我們以某個小方格的一個頂點為圓心畫一個半徑為1000的圓。 你能計算出這個圓里有多少個完整的小方格嗎?

注意:需要提交的是一個整數(shù),不要填寫任何多余內(nèi)容。

這個題不太會做,計算出這個圓的內(nèi)接正方形編成為1000sqrt(2)=1414,正方形中方格個數(shù)為14141414,關(guān)鍵在于正方形外不會計算。

第三題:復(fù)數(shù)冪
設(shè)i為虛數(shù)單位。對于任意正整數(shù)n,(2+3i)^n 的實部和虛部都是整數(shù)。 求 (2+3i)^123456 等于多少?
即(2+3i)的123456次冪,這個數(shù)字很大,要求精確表示。

答案寫成 "實部±虛部i"
的形式,實部和虛部都是整數(shù)(不能用科學(xué)計數(shù)法表示),中間任何地方都不加空格,實部為正時前面不加正號。(2+3i)^2 寫成: -5+12i,
(2+3i)^5 的寫成: 122-597i

注意:需要提交的是一個很龐大的復(fù)數(shù),不要填寫任何多余內(nèi)容。

這個好辦,寫段程序,把實部和虛部存儲,連乘123456次,即循環(huán)123456次。

public class T3 {

    public static void main(String[] args) {
        int a = 2, b = 3;
        
        for(int i = 1; i<123456; i++){
            int temp = 2*a-3*b;
            b = 3*a+2*b;
            a = temp;
        }
        System.out.println(a+"+"+b+"i");
    }

}
答案:13483137+1100011648i

這題更正一下,由于是大數(shù)運算使用int類型當(dāng)然是不行的,哎,第一次遇到這么大數(shù)運算也是無奈,使用BigInteger類型。

import java.math.BigInteger;

public class T3 {

    public static void main(String[] args) {
         BigInteger a = new BigInteger("2");
         BigInteger b = new BigInteger("3");
         BigInteger a1 = new BigInteger("2");
         BigInteger b1 = new BigInteger("3");
         BigInteger temp;
        for(int i = 1; i<123456; i++){
            temp = a.multiply(a1).subtract(b.multiply(b1));
            b = a.multiply(b1).add(b.multiply(a1));
            a = temp;
        }
        if(b.compareTo(BigInteger.valueOf(0))>0){
            System.out.println(a+"+"+b+"i");
        }else{
        System.out.println(a+""+b+"i");
        }
    }

}

如果在eclipse中輸出會得到一個--i的東西,是一個 超長字符串,使用cmd控制臺輸出結(jié)果為:感受一下吧~

第四題:測試次數(shù)
x星球的居民脾氣不太好,但好在他們生氣的時候唯一的異常舉動是:摔手機(jī)。
各大廠商也就紛紛推出各種耐摔型手機(jī)。x星球的質(zhì)監(jiān)局規(guī)定了手機(jī)必須經(jīng)過耐摔測試,并且評定出一個耐摔指數(shù)來,之后才允許上市流通。

x星球有很多高聳入云的高塔,剛好可以用來做耐摔測試。塔的每一層高度都是一樣的,與地球上稍有不同的是,他們的第一層不是地面,而是相當(dāng)于我們的2樓。

如果手機(jī)從第7層扔下去沒摔壞,但第8層摔壞了,則手機(jī)耐摔指數(shù)=7。 特別地,如果手機(jī)從第1層扔下去就壞了,則耐摔指數(shù)=0。
如果到了塔的最高層第n層扔沒摔壞,則耐摔指數(shù)=n

為了減少測試次數(shù),從每個廠家抽樣3部手機(jī)參加測試。

某次測試的塔高為1000層,如果我們總是采用最佳策略,在最壞的運氣下最多需要測試多少次才能確定手機(jī)的耐摔指數(shù)呢?

請?zhí)顚戇@個最多測試次數(shù)。

注意:需要填寫的是一個整數(shù),不要填寫任何多余內(nèi)容。

這個也簡單,使用二分查找,最壞情況是1000層也不壞
二分查找算法代碼如下:

public class T4 {

    public static void main(String[] args) {
        
        int x = 0, y=1000;
        int m = 0,count=0;
        while(y-x>1){
            m = x+(y-x)/2;
            if(m<1000) x = m;
            else y = m;
            count++;
        }
        System.out.println(count);
    }

}
答案:10
第五題:快速排序
以下代碼可以從數(shù)組a[]中找出第k小的元素。  

它使用了類似快速排序中的分治算法,期望時間復(fù)雜度是O(N)的。

請仔細(xì)閱讀分析源碼,填寫劃線部分缺失的內(nèi)容。

注意:只提交劃線部分缺少的代碼,不要抄寫任何已經(jīng)存在的代碼或符號。

import java.util.Random;
public class Main{
    public static int quickSelect(int a[], int l, int r, int k) {
        Random rand = new Random();
        int p = rand.nextInt(r - l + 1) + l;
        int x = a[p];
        int tmp = a[p]; a[p] = a[r]; a[r] = tmp;
        int i = l, j = r;
        while(i < j) {
                    while(i < j && a[i] < x) i++;
                    if(i < j) {
                            a[j] = a[i];
                            j--;
                    }
                    while(i < j && a[j] > x) j--;
                    if(i < j) {
                            a[i] = a[j];
                            i++;
                    }
            }
            a[i] = x;
            p = i;
            if(i - l + 1 == k) return a[i];
            if(i - l + 1 < k) return quickSelect( _________________________________ ); //填空
            else return quickSelect(a, l, i - 1, k);    
    }
    public static void main(String args[]) {
        int [] a = {1, 4, 2, 8, 5, 7};
        System.out.println(quickSelect(a, 0, 5, 4));
    }
}
一個分治法進(jìn)行快速排序 分治法三步
1.將問題分成盡量左右相等的左右兩半
2.遞歸求解左右兩半
3.合并左右兩半問題和當(dāng)前問題比較 熟悉的話一眼看出,這個也簡單

答案:a,i,r,k

第六題:遞增三元組

給定三個整數(shù)數(shù)組 A = [A1, A2, ... AN], B = [B1, B2, ... BN], C = [C1, C2,
... CN], 請你統(tǒng)計有多少個三元組(i, j, k) 滿足:

1 <= i, j, k <= N

Ai < Bj < Ck

【輸入格式】 第一行包含一個整數(shù)N。 第二行包含N個整數(shù)A1, A2, ... AN。 第三行包含N個整數(shù)B1, B2, ... BN。
第四行包含N個整數(shù)C1, C2, ... CN。

對于30%的數(shù)據(jù),1 <= N <= 100
對于60%的數(shù)據(jù),1 <= N <= 1000
對于100%的數(shù)據(jù),1 <= N <=
100000 0 <= Ai, Bi, Ci <= 100000

【輸出格式】 一個整數(shù)表示答案

【輸入樣例】
3
1 1 1
2 2 2
3 3 3

【輸出樣例】
27

資源約定: 峰值內(nèi)存消耗(含虛擬機(jī)) < 256M CPU消耗 < 1000ms

請嚴(yán)格按要求輸出,不要畫蛇添足地打印類似:“請您輸入...” 的多余內(nèi)容。 所有代碼放在同一個源文件中,調(diào)試通過后,拷貝提交該源碼。
不要使用package語句。不要使用jdk1.7及以上版本的特性。 主類的名字必須是:Main,否則按無效代碼處理。

這個題我就比較坑了,程序設(shè)計

暴力求解做法

int count = 0;
for(int i = 0; i

時間復(fù)雜度為O(n^3),必定超時!
我的思路使用子列生成算法,使用增量法生成長度為3的子列。
假設(shè)數(shù)組A,B,C已經(jīng)構(gòu)造完成

public class Main{
    public void static main(String[] args){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int tlength = 0;
        int[] tuple = new int[n*3];
        int[] temp = new int[n*3];
        int[] count = {0};  //記錄有多設(shè)個滿足條件的三元組
        
        //根據(jù)輸入構(gòu)造ABC
        ...
        //構(gòu)造一個下標(biāo)數(shù)組{0,0,0,1,1,1,2,2,2,...,n-1,n-1,n-1}
        for(int i = 0; i3) return;
        if(cur==3){
            if(a[tuple[[temp[0]]]

時間復(fù)雜度:O(nlogn)
悲劇的是debug好久答案不正確,經(jīng)驗不足,時間比較緊張,導(dǎo)致后面幾道題時間不夠。

第七題:螺旋折線
如圖所示的螺旋折線經(jīng)過平面上所有整點恰好一次。   對于整點(X, Y),我們定義它到原點的距離dis(X,
Y)是從原點到(X, Y)的螺旋折線段的長度。

例如dis(0, 1)=3, dis(-2, -1)=9

給出整點坐標(biāo)(X, Y),你能計算出dis(X, Y)嗎?

【輸入格式】 X和Y

對于40%的數(shù)據(jù),-1000 <= X, Y <= 1000
對于70%的數(shù)據(jù),-100000 <= X, Y <= 100000
對于100%的數(shù)據(jù), -1000000000 <= X, Y <= 1000000000

【輸出格式】 輸出dis(X, Y)

【輸入樣例】 0 1

【輸出樣例】 3

資源約定: 峰值內(nèi)存消耗(含虛擬機(jī)) < 256M CPU消耗 < 1000ms

請嚴(yán)格按要求輸出,不要畫蛇添足地打印類似:“請您輸入...” 的多余內(nèi)容。

所有代碼放在同一個源文件中,調(diào)試通過后,拷貝提交該源碼。 不要使用> package語句。不要使用jdk1.7及以上版本的特性。
主類的名字必須是:Main,否則按無效代碼處理。

觀察后不難發(fā)現(xiàn),可以看成每一步走一個折線,奇數(shù)步左上(x-n,y)(x-n,y+n),偶數(shù)步右下(x+n,y)(x+n,y-n),n為步數(shù),在走的過程中判斷最后加一個統(tǒng)計變量即可

import java.util.Scanner;

public class T7 {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int x = sc.nextInt();
        int y = sc.nextInt();
        boolean ok = false;
        int x1 = 0, y1 = 0,m=0,count=0;
        
        while(!ok){
            if(x1==x&&y1==y){
                ok = true;
                break;
            }
            m++;
            if(m%2==1){//奇數(shù)步
                for(int i = 0; i

第八題:日志統(tǒng)計
小明維護(hù)著一個程序員論壇?,F(xiàn)在他收集了一份"點贊"日志,日志共有N行。其中每一行的格式是:

ts id

表示在ts時刻編號id的帖子收到一個"贊"。

現(xiàn)在小明想統(tǒng)計有哪些帖子曾經(jīng)是"熱帖"。如果一個帖子曾在任意一個長度為D的時間段內(nèi)收到不少于K個贊,小明就認(rèn)為這個帖子曾是"熱帖"。

具體來說,如果存在某個時刻T滿足該帖在[T, T+D)這段時間內(nèi)(注意是左閉右開區(qū)間)收到不少于K個贊,該帖就曾是"熱帖"。

給定日志,請你幫助小明統(tǒng)計出所有曾是"熱帖"的帖子編號。

【輸入格式】 第一行包含三個整數(shù)N、D和K。 以下N行每行一條日志,包含兩個整數(shù)ts和id。

對于50%的數(shù)據(jù),1 <= K <= N <= 1000
對于100%的數(shù)據(jù),1 <= K <= N <= 100000
0 <= ts<= 100000 0 <= id <= 100000

【輸出格式】 按從小到大的順序輸出熱帖id。每個id一行。

【輸入樣例】 7 10 2
0 1
0 10
10 10
10 1
9 1
100 3
100 3

【輸出樣例】 1 3

資源約定: 峰值內(nèi)存消耗(含虛擬機(jī)) < 256M CPU消耗 < 1000ms

請嚴(yán)格按要求輸出,不要畫蛇添足地打印類似:“請您輸入...” 的多余內(nèi)容。

所有代碼放在同一個源文件中,調(diào)試通過后,拷貝提交該源碼。 不要使用package語句。不要使用jdk1.7及以上版本的特性。
主類的名字必須是:Main,否則按無效代碼處理。

也不難,獲取日志數(shù)組,構(gòu)造HashMap統(tǒng)計最后判斷滿足k輸出即可.
這里代碼不在貼出。

第九題:全球變暖
你有一張某海域NxN像素的照片,"."表示海洋、"#"表示陸地,如下所示:

....... .##.... .##.... ....##. ..####. ...###. .......

其中"上下左右"四個方向上連在一起的一片陸地組成一座島嶼。例如上圖就有2座島嶼。

由于全球變暖導(dǎo)致了海面上升,科學(xué)家預(yù)測未來幾十年,島嶼邊緣一個像素的范圍會被海水淹沒。具體來說如果一塊陸地像素與海洋相鄰(上下左右四個相鄰像素中有海洋),它就會被淹沒。

例如上圖中的海域未來會變成如下樣子:

....... ....... ....... ....... ....#.. ....... .......

請你計算:依照科學(xué)家的預(yù)測,照片中有多少島嶼會被完全淹沒。

【輸入格式】 第一行包含一個整數(shù)N。 (1 <= N <= 1000) 以下N行N列代表一張海域照片。

照片保證第1行、第1列、第N行、第N列的像素都是海洋。

【輸出格式】 一個整數(shù)表示答案。

【輸入樣例】 7
.......
.##....
.##....
....##.
..####.
...###.
.......

【輸出樣例】 1

資源約定: 峰值內(nèi)存消耗(含虛擬機(jī)) < 256M CPU消耗 < 1000ms

請嚴(yán)格按要求輸出,不要畫蛇添足地打印類似:“請您輸入...” 的多余內(nèi)容。

所有代碼放在同一個源文件中,調(diào)試通過后,拷貝提交該源碼。 不要使用package語句。不要使用jdk1.7及以上版本的特性。
主類的名字必須是:Main,否則按無效代碼處理。

不太會,主要基礎(chǔ)不好,是一個圖問題,對圖不太熟悉,dfs算法不會寫,算是基本功不行

第十題:堆的記數(shù)
我們知道包含N個元素的堆可以看成是一棵包含N個節(jié)點的完全二叉樹。  
每個節(jié)點有一個權(quán)值。對于小根堆來說,父節(jié)點的權(quán)值一定小于其子節(jié)點的權(quán)值。

假設(shè)N個節(jié)點的權(quán)值分別是1~N,你能求出一共有多少種不同的小根堆嗎?

例如對于N=4有如下3種:

1
/
2 3
/
4

1
/
3 2
/
4

1
/
2 4
/
3
由于數(shù)量可能超過整型范圍,你只需要輸出結(jié)果除以1000000009的余數(shù)。

【輸入格式】 一個整數(shù)N。
對于40%的數(shù)據(jù),1 <= N <= 1000
對于70%的數(shù)據(jù),1 <= N <= 10000
對于100%的數(shù)據(jù),1 <= N <= 100000

【輸出格式】 一個整數(shù)表示答案。

【輸入樣例】 4

【輸出樣例】 3

資源約定: 峰值內(nèi)存消耗(含虛擬機(jī)) < 256M CPU消耗 < 1000ms

請嚴(yán)格按要求輸出,不要畫蛇添足地打印類似:“請您輸入...” 的多余內(nèi)容。

所有代碼放在同一個源文件中,調(diào)試通過后,拷貝提交該源碼。 不要使用package語句。不要使用jdk1.7及以上版本的特性。
主類的名字必須是:Main,否則按無效代碼處理。

估計涉及到動態(tài)規(guī)劃,沒什么思路。
后續(xù)繼續(xù)跟新!

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/68911.html

相關(guān)文章

  • 大學(xué)這么多比賽,我該參加哪個?

    摘要:針對計算機(jī)類的同學(xué),數(shù)學(xué)建模,電子科技大賽,大創(chuàng),,藍(lán)橋杯這些都是值得參加的高含金量的比賽,無論是學(xué)校加分還是應(yīng)屆招聘,都被廣泛認(rèn)可。但近幾屆的藍(lán)橋杯題目難度已經(jīng)明顯增大,準(zhǔn)備參加的同學(xué)也決不可掉以輕心。 ...

    不知名網(wǎng)友 評論0 收藏0
  • 2015年第6屆藍(lán)橋Java B省賽試題解析

    摘要:比如,其循環(huán)節(jié)為共有位。答案牌型種數(shù)小明被劫持到賭城,被迫與其他人玩牌。還有另外一種寫法主要的思路是假設(shè)牌是從到按順序取的,表示取到牌數(shù)為的牌,表示目前一共取了多少張牌。 1、三角形面積 如圖1所示。圖中的所有小方格面積都是1。那么,圖中的三角形面積應(yīng)該是多少呢?請?zhí)顚懭切蔚拿娣e。不要填寫任何多余內(nèi)容或說明性文字。 showImg(https://segmentfault.com/i...

    felix0913 評論0 收藏0
  • 藍(lán)橋-烏托邦樹

    摘要:傳送門題目描述實現(xiàn)一個算法得到烏托邦樹的高度介紹如下烏托邦樹每年經(jīng)歷個生長周期。每年夏天,它的高度都會增加米。對于一顆在春天開始時種下的高米的樹,問經(jīng)過指定周期后,樹的高度為多少。輸入描述輸入一個數(shù)字,表示指定周期。 ...

    caiyongji 評論0 收藏0
  • 2021藍(lán)橋你值得擁有

    摘要:文章目錄一你應(yīng)該知道的藍(lán)橋杯含金量獲獎率高不高支持哪些編程語言二川川帶你體驗藍(lán)橋杯省賽藍(lán)橋杯藍(lán)橋杯三個人感受一你應(yīng)該知道的藍(lán)橋杯如果你是計算機(jī)相關(guān)專業(yè),你不知藍(lán)橋杯就過不去了,我們來看看藍(lán)橋杯如何,不知道更應(yīng)該來了解下了。 ...

    fanux 評論0 收藏0
  • 藍(lán)橋 算法訓(xùn)練 審美課 java

    摘要:問題描述審美的歷程課上有位學(xué)生,帥老師展示了幅畫,其中有些是梵高的作品,另外的都出自五歲小朋友之手。輸入格式第一行兩個數(shù)和,表示學(xué)生數(shù)和圖畫數(shù)接下來是一個的矩陣如果,表示學(xué)生覺得第幅畫是小朋友畫的如果,表示學(xué)生覺得第幅畫是梵高畫的。 問題描述  《審美的歷程》課上有n位學(xué)生,帥老師展示了m幅畫,其中有些是梵高的作品,另外的都出自五歲小朋友之手。老師請同學(xué)們分辨哪些畫的作者是梵高,但是老...

    worldligang 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<