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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

木棒拼图(有一个由很多木棒构成的集合,每个木棒有对应的长度,请问能否用集合中的这些木棒以某个顺序首尾相连构成一个面积大于 0 的简单多边形且所有木棒都要用上,简单多边形即不会自交的多边形。)

發(fā)布時間:2024/1/8 编程问答 31 豆豆

輸入描述:

每組測試用例僅包含一組數(shù)據(jù),每組數(shù)據(jù)第一行為一個正整數(shù) n 表示操作的數(shù)量(1 ≤ n ≤ 50000) , 接下來有n行,每行第一個整數(shù)為操作類型 i (i ∈ {1,2}),第二個整數(shù)為一個長度 L(1 ≤ L ≤ 1,000,000,000)。如果 i=1 代表在集合內(nèi)插入一個長度為 L 的木棒,如果 i=2 代表刪去在集合內(nèi)的一根長度為 L 的木棒。輸入數(shù)據(jù)保證刪除時集合中必定存在長度為 L 的木棒,且任意操作后集合都是非空的。

輸出描述:

對于每一次操作結(jié)束有一次輸出,如果集合內(nèi)的木棒可以構(gòu)成簡單多邊形,輸出 "Yes" ,否則輸出 "No"。

輸入:

5
1 1
1 1
1 1
2 1
1 2

輸出:

No
No
Yes
No
No

import java.util.*; public class Main{public static void main(String[] args){Scanner sc = new Scanner(System.in); List<Integer> al = new ArrayList<Integer>();int result = 0; int n = sc.nextInt();for(int i = 0;i<n;i++){int I = sc.nextInt(); //插入或者刪除int L = sc.nextInt(); //木棒長度if(I == 1){ //插入int j = 0; // if(al.size()==j){ // al.add(L); // }for(;j<al.size();j++){ //找到插入位置,一旦找到,趕緊退出if(al.get(j)>=L){al.add(j,L);break;}} if(al.size()==j){ //位置很重要al.add(L);}result = result+L; }else{al.remove(al.indexOf(L));result = result-L;}int max = al.get(al.size()-1);if(result-max>max){System.out.println("Yes");}else{System.out.println("No");}} } }

如果沒有第27行代碼,也就是al.remove(al.indexOf(L));通過率只能變?yōu)?5%

利用ArrayList的public void add(int index,E element)方法

利用ArrayList的public boolean remove(Object o)方法

總結(jié)

以上是生活随笔為你收集整理的木棒拼图(有一个由很多木棒构成的集合,每个木棒有对应的长度,请问能否用集合中的这些木棒以某个顺序首尾相连构成一个面积大于 0 的简单多边形且所有木棒都要用上,简单多边形即不会自交的多边形。)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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