日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

2017蓝桥杯c语言C组承压计算,蓝桥杯2017Java B组---分巧克力and承压计算

發(fā)布時(shí)間:2023/12/10 java 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2017蓝桥杯c语言C组承压计算,蓝桥杯2017Java B组---分巧克力and承压计算 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

分巧克力

package lala;

/*

*兒童節(jié)那天有K位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友們。

小明一共有N塊巧克力,其中第i塊是Hi x Wi的方格組成的長(zhǎng)方形。

為了公平起見(jiàn),小明需要從這 N 塊巧克力中切出K塊巧克力分給小朋友們。切出的巧克力需要滿足:

1. 形狀是正方形,邊長(zhǎng)是整數(shù)

2. 大小相同

例如一塊6x5的巧克力可以切出6塊2x2的巧克力或者2塊3x3的巧克力。

當(dāng)然小朋友們都希望得到的巧克力盡可能大,你能幫小Hi計(jì)算出最大的邊長(zhǎng)是多少么?

輸入

第一行包含兩個(gè)整數(shù)N和K。(1 <= N, K <= 100000)

以下N行每行包含兩個(gè)整數(shù)Hi和Wi。(1 <= Hi, Wi <= 100000)

輸入保證每位小朋友至少能獲得一塊1x1的巧克力。

輸出

輸出切出的正方形巧克力最大可能的邊長(zhǎng)。

樣例輸入:

2 10

6 5

5 6

樣例輸出:

2

*/

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

int n, k;

int[] h = new int[100000];

int[] w = new int[100000];

Scanner sc = new Scanner(System.in);

n = sc.nextInt();

k = sc.nextInt();

for (int i = 0; i < n; ++i) {

h[i] = sc.nextInt();

w[i] = sc.nextInt();

}

int r = 100001;

int l = 1;

int ans = 0;

while (l <= r) {

int mid = (l + r) / 2;

int cnt = 0;

for (int i = 0; i < n; ++i) {

cnt += (h[i] / mid) * (w[i] / mid);

}

if (cnt >= k) {

l = mid + 1;

ans = mid;

} else {

r = mid - 1;

}

}

System.out.println(ans);

}

}

測(cè)試了一下,運(yùn)行超時(shí)。。。

承壓計(jì)算

package lala;

/*

* X星球的高科技實(shí)驗(yàn)室中整齊地堆放著某批珍貴金屬原料。

每塊金屬原料的外形、尺寸完全一致,但重量不同。

金屬材料被嚴(yán)格地堆放成金字塔形。

{7 },

{5 ,8} ,

{7, 8,8 },

{9, 2, 7, 2},

{8, 1,4, 9, 1 },

{8, 1 ,8,8 ,4,1 },

{7, 9, 6 ,1, 4 ,5, 4},

{5, 6, 5, 5, 6, 9 ,5, 6},

{5,5, 4, 7, 9, 3, 5, 5,1 },

{7, 5 ,7, 9, 7, 4, 7, 3, 3,1},

{4, 6,4, 5, 5, 8 ,8, 3, 2, 4, 3},

{1 ,1 ,3 ,3 ,1 ,6 ,6 ,5, 5, 4, 4, 2},

{9 ,9 ,9 ,2 ,1 ,9 ,1 ,9 ,2 ,9 ,5 ,7 ,9},

{4 ,3 ,3 ,7, 7, 9, 3, 6, 1, 3, 8, 8, 3, 7},

{3 ,6 ,8 ,1 ,5 ,3 ,9 ,5 ,8 ,3 ,8 ,1 ,8 ,3 ,3},

{8 ,3 ,2 ,3, 3, 5, 5, 8, 5, 4, 2, 8 ,6 ,7 ,6, 9},

{8 ,1 ,8 ,1 ,8 ,4 ,6 ,2 ,2 ,1 ,7 ,9 ,4 ,2 ,3 ,3 ,4},

{2 ,8 ,4 ,2 ,2 ,9 ,9, 2, 8, 3, 4, 9, 6, 3, 9, 4, 6, 9},

{7 ,9 ,7 ,4 ,9 ,7 ,6 ,6 ,2 ,8 ,9 ,4 ,1 ,8 ,1 ,7 ,2 ,1 ,6},

{9, 2, 8, 6, 4, 2, 7, 9 ,5 ,4, 1, 2, 5, 1, 7, 3, 9, 8, 3, 3},

{5 ,2 ,1 ,6 ,7 ,9 ,3 ,2 ,8 ,9 ,5 ,5 ,6 ,6 ,6 ,2 ,1 ,8 ,7 ,9 ,9},

{6 ,7 ,1 ,8 ,8 ,7, 5, 3, 6, 5, 4, 7, 3, 4, 6, 7, 8, 1, 3, 2, 7, 4},

{2 ,2 ,6 ,3 ,5 ,3, 4 ,9 ,2 ,4 ,5 ,7 ,6 ,6 ,3 ,2 ,7 ,2 ,4 ,8 ,5 ,5 ,4},

{7 ,4 ,4 ,5 ,8, 3, 3, 8, 1, 8, 6, 3, 2, 1, 6, 2, 6, 4, 6, 3, 8, 2, 9, 6},

{1 ,2 ,4 ,1 ,3 ,3 ,5 ,3 ,4 ,9 ,6 ,3 ,8 ,6 ,5 ,9 ,1 ,5 ,3 ,2 ,6 ,8 ,8 ,5 ,3},

{2 ,2 ,7, 9, 3, 3, 2, 8, 6, 9, 8, 4, 4, 9, 5, 8, 2, 6, 3, 4, 8, 4, 9, 3, 8, 8},

{7 ,7 ,7 ,9 ,7 ,5 ,2 ,7 ,9 ,2 ,5 ,1 ,9 ,2 ,6 ,5, 3 ,9 ,3 ,5 ,7 ,3 ,5 ,4 ,2 ,8 ,9,},

{7 ,7, 6, 6 ,8 ,7 ,5 ,5 ,8, 2, 4, 7, 7, 4, 7, 2, 6, 9, 2, 1, 8, 2, 9, 8, 5, 7, 3, 6} ,

{5 ,9 ,4 ,5 ,5 ,7 ,5 ,5 ,6 ,3 ,5 ,3 ,9 ,5 ,8 ,9 ,5 ,4 ,1 ,2 ,6 ,1 ,4 ,3 ,5 ,3 ,2 ,4 ,1}

x? ?x? ?x? x? x? x? x? x? x? x? ?x? ?x? x? x? x? x? x? x? x? x? x? x? ?x? ?x? x? x? x? x? ?x? ?x

其中的數(shù)字代表金屬塊的重量(計(jì)量單位較大)。

最下一層的X代表30臺(tái)極高精度的電子秤。

假設(shè)每塊原料的重量都十分精確地平均落在下方的兩個(gè)金屬塊上,

最后,所有的金屬塊的重量都嚴(yán)格精確地平分落在最底層的電子秤上。

電子秤的計(jì)量單位很小,所以顯示的數(shù)字很大。

工作人員發(fā)現(xiàn),其中讀數(shù)最小的電子秤的示數(shù)為:2086458231

請(qǐng)你推算出:讀數(shù)最大的電子秤的示數(shù)為多少?

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

*/

import java.util.Arrays;

import java.util.Scanner;

public class 承壓計(jì)算 {

static long[][] arr = new long[30][30];

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

long factor = 1;//2的30次方

for (int i = 0; i < 30; ++i) {

factor <<= i;

}

//輸入數(shù)據(jù)放入二維數(shù)組

for (int i = 0; i < 29; ++i) {

for (int j = 0; j <= i; ++j) {

long a = sc.nextLong();

arr[i][j] = a * factor;// 每個(gè)數(shù)據(jù)都乘以factor

}

}

//自上而下處理a[i][j]*factor(2的30次方)-->除以2,計(jì)入a[i+1][j]和a[i+1][j+1]

//循環(huán)處理第1~N-1行

for (int i = 0; i < 29; ++i) {

for (int j = 0; j <= i; ++j) {

long ha = arr[i][j]/2;

arr[i+1][j] += ha;

arr[i+1][j+1] += ha;

}

}

//對(duì)a[N-1]這一行進(jìn)行排序,查看最小值和factor之間的倍數(shù)關(guān)系,決定最大值是多少

Arrays.sort(arr[29]);

System.out.println(arr[29][0]);

System.out.println(arr[29][29]);

System.out.println(arr[29][29]/(arr[29][0])/2086458231);

}

}

總結(jié)

以上是生活随笔為你收集整理的2017蓝桥杯c语言C组承压计算,蓝桥杯2017Java B组---分巧克力and承压计算的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。