蓝桥杯省赛夺奖冲刺营精讲二
蓝桥杯省赛夺奖冲刺营精讲二
「谈判」
题目描述
在很久很久以前,有 n 个部落居住在平原上,依次编号为 1 到 n。第 i 个部落的人数为。
有一年发生了灾荒。年轻的政治家小蓝想要说服所有部落一同应对灾荒,他能通过谈判来说服部落进行联合。
每次谈判,小蓝只能邀请两个部落参加,花费的金币数量为两个部落的人数之和,谈判的效果是两个部落联合成一个部落(人数为原来两个部落的人数之和)。
输入描述
输入的第一行包含一个整数 n,表示部落的数量。
第二行包含 n 个正整数,依次表示每个部落的人数。
其中,1≤n≤1000,1≤ti≤104
输出描述
输出一个整数,表示最小花费。
输入输出样例
示例 1
输入
4
9 1 3 5
输出
31
运行限制
最大运行时间:1s
最大运行内存: 128M
代码1
蓝桥杯官网的测试器好像有问题,我的这个代码通过了,但其实是错的,直接升序排序后,从左到右,一次谈判。
例:3 4 5 6,
(3+4)=7
(7+5)=12
(12+6)=20ans=39是错误的!!
import java.util.Arrays;
import java.util.Scanner;public class Main {static int n;static int[] people;public static void main(String[] args) {Scanner sc = new Scanner(System.in);n=sc.nextInt();//部落数people=new int[n];for (int i = 0; i < n; i++) {people[i]=sc.nextInt();}Arrays.sort(people);int ans=0;int t=people[0];for (int i = 1; i < n; i++) {t=t+people[i];ans+=t;}System.out.println(ans);}
}
代码2
每次选了最小的两个谈判后,要进行排序
例:3 4 5 6,
(3+4)7
(5+6)11 //这时就在7 5 6中排序,选最小的俩
(7+11)18ans=36 我觉得有点像哈夫曼树,生成最短编码
import java.util.Arrays;
import java.util.Scanner;public class Main {static int n;static int[] people;public static void main(String[] args) {Scanner sc = new Scanner(System.in);n=sc.nextInt();//部落数people=new int[n];for (int i = 0; i < n; i++) {people[i]=sc.nextInt();}Arrays.sort(people);int ans=0;int t;for (int i = 0; i < n-1; i++) {t=people[i]+people[i+1];ans+=t;people[i+1]=t;Arrays.sort(people,i+1,n);}System.out.println(ans);}
}
「排座椅」
题目描述
上课的时候总有一些同学和前后左右的人交头接耳,这是令小学班主任十分头疼的一件事情。不过,班主任小雪发现了一些有趣的现象,当同学们的座次确定下来之后,只有有限的 D 对同学上课时会交头接耳。同学们在教室中坐成了 M 行 N 列,坐在第 i 行第 j 列的同学的位置是(i,j),为了方便同学们进出,在教室中设置了 K 条横向的通道,L 条纵向的通道。于是,聪明的小雪想到了一个办法,或许可以减少上课时学生交头接耳的问题:她打算重新摆放桌椅,改变同学们桌椅间通道的位置,因为如果一条通道隔开了两个会交头接耳的同学,那么他们就不会交头接耳了。
请你帮忙给小雪编写一个程序,给出最好的通道划分方案。在该方案下,上课时交头接耳的学生对数最少。
输入描述
输入第一行,有 5 各用空格隔开的整数,分别是 M,N,K,L,D(2≤N,M≤1000,0≤K<M,0≤L<N,D≤2000)。
接下来D 行,每行有 4 个用空格隔开的整数,第 i 行的 4 个整数 Xi,Yi ,Pi,Qi,表示坐在位置 (Xi,Yi) 与 (Pi ,Qi) 的两个同学会交头接耳(输入保证他们前后相邻或者左右相邻)。
输入数据保证最优方案的唯一性。
输出描述
输出共两行。
第一行包含 K 个整数,a1,a2,⋯aK,表示第a1行和a1+1 行之间、第 a2 行和第 a2+1 行之间、…、第 aK 行和第aK+1 行之间要开辟通道,其中 ai<ai+1,每两个整数之间用空格隔开(行尾没有空格)。
第二行包含 L 个整数,b1 ,b 2 ,⋯b k,表示第 b1 列和 b_1+1b 1 +1 列之间、第 b2列和第b2+1 列之间、…、第bL列和第b L +1 列之间要开辟通道,其中b i <b i +1,每两个整数之间用空格隔开(行尾没有空格)。
输入输出样例
示例 1
输入
4 5 1 2 3
4 2 4 3
2 3 3 3
2 5 2 4
输出
2
2 4
运行限制
最大运行时间:1s
最大运行内存: 128M
代码
最开始选了很多存储vector,map,数组,等,太浪费时间了!!想清楚再动手
找index的时候,每次都是选的最大的先输出,但其实不需要,按坐标由小到大就行!
import java.util.Scanner;public class Main {static int m,n,k,l,d;static int[] row;//行数,这一行讲话数static int[] col;//列数,这一列讲话数static int[] rowIndex;//列数,这一列讲话数static int[] colIndex;//列数,这一列讲话数public static void main(String[] args) {Scanner sc = new Scanner(System.in);m=sc.nextInt();//行数n=sc.nextInt();//列数k=sc.nextInt();//横过道数l=sc.nextInt();//纵过道数d=sc.nextInt();//说话数row=new int[m+1];rowIndex=new int[m+1];col=new int[n+1];colIndex=new int[n+1];int r1,c1,r2,c2,rowN=0,colN=0;while(d-->0) {r1=sc.nextInt();c1=sc.nextInt();r2=sc.nextInt();c2=sc.nextInt();int min;if(r1==r2) {min=Math.min(c1, c2);col[min]+=1;}else {min=Math.min(r1, r2);row[min]+=1;}}int index=0;for (int i = 0; i < k; i++) {index=findMax(row);rowIndex[index]=1;}for (int i = 0; i < l; i++) {index=findMax(col);colIndex[index]=1;}for (int i = 0; i < m+1; i++) {if(rowIndex[i]==1)System.out.print(i+" ");}System.out.println();for (int i = 0; i < n+1; i++) {if(colIndex[i]==1)System.out.print(i+" ");}}private static int findMax(int[] arr) {int posi=-1;int max=-1;for (int i = 0; i < arr.length; i++) {if(arr[i]>max) {max=arr[i];posi=i;}}arr[posi]=0;return posi;}
}
蓝桥杯省赛夺奖冲刺营精讲二相关推荐
- 2022年(第13届蓝桥杯省赛)Python 14 天夺奖冲刺营
2022年(第13届蓝桥杯省赛)Python 14 天夺奖冲刺营 2022.03.25 攒了一周的视频直播没有看,更新完了直接看合集. 数据结构基础之链表篇 什么是链表 链表是线性表的链式存取的数据结 ...
- java蓝桥杯省赛第十届_2019年第十届蓝桥杯省赛-迷宫(BFS/Excel大法)
这题用dfs搜不出来,需要使用bfs并记录路径,设置好方向顺序跑就ok 然而毕竟是暴力杯,我们的原则是代码能省就省(懒癌晚期 于是乎网上便出现了形形色色的题解,笔者综合了各路大神神乎其技的思想,总结出 ...
- 2020蓝桥杯省赛B组C++(第二场)真题
心得体会 前面总结了很多历届的省赛真题,这次终于轮到自己上战场上体验真题啦~为此次蓝桥杯省赛也是准备了一两周时间,听说比较水,题不是很难,会暴力就能拿奖哈哈哈考完确实有点这样的感觉,但是能把五个填空题 ...
- 蓝桥杯国赛C++A组B组题解整理(第八、七、六、五、四届)
[写在前面的话19.04.04] 今年省赛的结果出的意外得快,有很多小伙伴来和我分享他们进了省一的喜悦,并问我啥时候更新国赛题解,emmm--不是我不想更新,实在是抽不出时间,有缘再更--虽然不更新题 ...
- 关于2018年第九届蓝桥杯省赛(江苏赛区)
为啥到现在才写呢...就是懒,是真的懒.题也没刷几个 (下面题目的超链接转自这里,并不是本人解法..只是因为有题目还有题解) 4.1举行的蓝桥杯也可以说是"愚人杯"了 早早的跟同学 ...
- 【蓝桥杯Web】大一小白参与蓝桥杯模拟赛二期web组体会
目录 前言 一.相关比赛介绍 1.ACM国际大学生程序设计竞赛 2.蓝桥杯 3.GPLT团队程序设计天梯赛 4.leetcode周赛和双周赛 5.PAT 二.蓝桥杯 1.应该参加蓝桥杯吗? 2.如何进 ...
- 蓝桥杯省赛考试注意事项和省赛资料整理
蓝桥杯省赛过来人的建议 本人是在山东区参加的第九届蓝桥杯单片机组,在比赛的过程中出现了很多的意外(在下面我会详细说明).我在比赛之前已经将历年的赛题,全部做过一遍了,个人感觉并不是很难. 给刚开始学的 ...
- 2020年第十一届蓝桥杯省赛及国赛心得(Java B组)
省赛 今年省赛五道结果填空题,五道程序设计题.结果填空前三道比较简单,都对了.最后两道结果填空题有点难,就直接跳过去做程序设计题.前两道送分题,第三道深搜,第四道时间来不及,我直接暴力过50%样例.最 ...
- 2018届蓝桥杯省赛(javaC组)回顾
绪言 博主去年代表学校参加了省赛,做完了我大概7道题能得分,其他题我不是特别有把握.我心里大概知道能得奖,但是得省一时超乎我自己意外的.往年蓝桥杯省赛一共是10道题.题型有填空题,代码补全题跟,编程题 ...
最新文章
- nginx FastCGI错误Primary script unknown解决办法
- 探索移动端的搜索设计
- 串行端口 linux,规范模式Linux串行端口
- 底部导航栏的几种实现方式
- 文件上传下载流程设计
- php bloginfo stylesheeturl,WordPress主题制作–bloginfo函数使用教程
- R语言基础入门(4)之数据类型与相应运算2
- linux 移动硬盘 大于4g,Linux下挂大于2G的NTFS格式移动硬盘方法
- docker搭建私有registry
- HTTP GET 和 POST 的区别
- linux磁盘性能监视,Linux磁盘I/O性能监控之iostat详解
- 基于Metronic的Bootstrap开发框架--工作流模块功能介绍(2)
- php自动生成网站地图
- cad直线和圆弧倒角不相切_cad中绘制圆角倒角有哪些技巧?
- 996下的最后一根稻草
- 重磅!上海出落户新政:双一流应届硕士可直接落户!
- 2018n年全国计算机考试,2018ncre全国计算机等级考试报名系统
- wx小程序工具下载及安装
- Unix和Linux
- JAVA反射中的Accessible
热门文章
- uniapp中上传图片(拍摄)和预览图片(图例和示例代码)
- php实现新闻浏览量,thinkphp实现统计页面浏览量
- HTML5期末大作业:餐饮行业网站设计——食品餐饮行业网站模板(10页) HTML+CSS+JavaScript 学生DW网页设计作业成品 美食生鲜零食网页设计
- 从信息熵、相对熵到交叉熵损失函数
- 在阿里做了4年软件测试,8月无情被辞,满腔怒火.....
- python解释器安装,pycharm安装
- 初学python100例-案例32 男孩女孩小孩人数 少儿编程案例讲解
- 四川天邑TY1608网络机顶盒卡刷(成功)
- Ubuntu22.04没有ttyUSB(无法访问 ‘/dev/ttyUSB‘: 没有那个文件或目录)问题解决
- html输入框是一条横线,html把输入的文本框变成一个下横线css样式