第三届全国高校计算机能力挑战赛Java程序设计赛总结
题目1:计算几何题
二维空间中给定一组点的坐标, 以任息两个点为直径绘制一个圆,求可以绘制的最大圆,满足该圆不包含其他点,输出其直径。说明,圆心0,半径r的圆包含某点P的条件是,r≥(O到P的距离)。
输入说明:第一行,点的数量,不超过200;第二行开始为点二维坐标,每个点为一行,每个点的两个维度间以空格隔开,坐标值范围为[-10000.0, 10000.0]。
输出说明:输出满足条件的圆的直径(保留小数点后3位有效数字,四舍五入)。
输入样例: 4
0 0
1 1
3 0
0 0.5
输出样例: 2.236
题目1解答:
暴力解法:遍历所有圆的半径,逐个对比找到最大值
import java.util.Scanner;
public class Main{public static int n;public static double[] x = new double[n + 10];public static double[] y = new double[n + 10];public static boolean check(double ox, double oy, double r) {int cnt = 0;for(int i = 1; i <= n; i++) {double dis = Math.sqrt((x[i] - ox) * (x[i] - ox) + (y[i] - oy) * (y[i] - oy));if(dis <= r)cnt++;}if(cnt == 2)return true;elsereturn false;} public static void main(String[] args) {Scanner sc = new Scanner(System.in);n = sc.nextInt();double ans = 0;for(int i = 1; i <= n; i++) {x[i] = sc.nextDouble();y[i] = sc.nextDouble();}for(int i = 1; i <= n - 1; i++) {for(int j = i + 1; j <= n; j++) {double ox = (x[i] + x[j]) / 2;double oy = (y[i] + y[j]) / 2;double r = Math.sqrt((x[i] - ox) * (x[i] - ox) + (y[i] - oy) * (y[i] - oy));if(check(ox, oy, r)) {ans = Math.max(ans, r * 2);}}}System.out.printf("%.3f\n", ans);}
}
题目2:动态规划题
某游戏公司设计了一个奖励活动,给N个用户(1≤N≤10^ 7)连续编号为1到N,依据用户的编号S发放奖。
发放奖励规则为:
公司随机设定三个非零正整数x,y,z。
如果S同时是x、y的倍数,奖励2张卡片;
如果S同时是y、z的倍数, 奖励4张卡片:
如果S同时是x、z的倍数,奖励8张卡片;
如果S同时是x,y, z的倍数奖励10张卡片;
其他奖励1张卡片;
以上奖励不能同时享受。满足多个奖励条件时,以最高奖励为准。
求任意连续的L个用户,使得这L个用户得到的奖励总和最多 ,输出奖励总和的值。
输入说明:第一行,输入N,L,以空格隔开; (1≤L≤N≤10^7)第二行,输入x,y,z,以空格隔开; (1≤x,y,z≤L)
输出说明:符合条件的连续L个用户的奖励总和的最大值。
输入样例: 40 7
3 5 2
输出样例: 24
题目2解答:
首先将员工编号按照游戏规则转换为获得的卡片数,用一维数组score[i]保存
然后进行动态规划三步走:
定义dp[]:dp[i]表示前i个员工获得的卡片总数
状态转移方程:ans = dp[i], i ≤ l
ans = max(ans, dp[i+ l] - dp[i]), l < i < n - l
初始值:ans = 0
import java.util.Scanner;
public class Main{public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int l = sc.nextInt();int x = sc.nextInt();int y = sc.nextInt();int z = sc.nextInt();long[] dp = new long[n + 10];long[] score = new long[n + 10];dp[0] = 0;for(int i = 1; i <= n; i++) {int flag1, flag2, flag3, flag4;flag1 = flag2 = flag3 = flag4 = 0;if(i % x == 0 && i % y == 0) flag1 = 1;if(i % y == 0 && i % z == 0) flag2 = 1;if(i % x == 0 && i % z == 0) flag3 = 1;if(i % x == 0 && i % y == 0 && i % z == 0) flag4 = 1;if(flag4 == 1) score[i] = 10;else if(flag3 == 1) score[i] = 8;else if(flag2 == 1) score[i] = 4;else if(flag1 == 1) score[i] = 2;else score[i] = 1;dp[i] = dp[i - 1] + score[i];}long ans = 0;for(int i = 1; i <= n - l; i++) {ans = Math.max(ans, dp[i + l] - dp[i]);}System.out.println(ans);}
}
第三届全国高校计算机能力挑战赛Java程序设计赛总结相关推荐
- 第二届全国高校计算机能力挑战赛-Java程序设计赛
第二届全国高校计算机能力挑战赛-Java程序设计赛 2020年第二届全国高校计算机能力挑战赛-Java程序设计赛前15题为选择题.16,17,18,19为编程题. 16题 题目:统计从1到N的整数中, ...
- 【2021年第三届全国高校计算机能力挑战赛】大数据应用赛
[2021年第三届全国高校计算机能力挑战赛]大数据应用赛 赛题:大数据应用赛 一.赛题背景: 二.时间安排: 三.奖项设置: 四.赛题和数据: 五.评价标准: 六.作品提交要求: 七.解决方案: 八. ...
- 全国高校计算机能力挑战赛真题(二)
全国高校计算机能力挑战赛Java模拟练习题(二) 竞赛官网:http://www.ncccu.org.cn/ 全国高校计算机能力挑战赛真题(一) 1.模拟时间:90分钟 2.单选题15题(每题3分), ...
- 非科班Java尝试全国高校计算机能力挑战赛第三届计挑赛
写在前面:①大佬勿在意,小打小闹!②若不决参加与否,希望下文可以给你帮助(仅限程序设计赛项). 文章目录 一.个人真实情况 二.比赛最细简介 三.最全参赛准备 四.比赛时候遇到不会做怎么办? 一.个人 ...
- 2019C语言程序设计大赛,2019年全国高校计算机能力挑战赛 C语言程序设计决赛
2019年全国高校计算机能力挑战赛 C语言程序设计决赛 毕竟这个比赛是第一次举办,能理解.. 希望未来再举办时,能够再完善一下题面表述.数据范围. 话说区域赛获奖名额有点少吧.舍友花60块想混个创新创 ...
- 2020年全国高校计算机能力挑战赛C++初赛程序设计题2:九键拼音中数字与英文字母成对应关系:2--abc, 3-def, 4-ghi, 5--jkl, 6--mno, 7--pqrs, 8--tuv
2020年全国高校计算机能力挑战赛C++初赛程序设计题2:九键拼音中数字与英文字母成对应关系:2–abc, 3-def, 4-ghi, 5–jkl, 6–mno, 7–pqrs, 8–tuv, 9–w ...
- 2020全国高校计算机能力挑战赛程序设计赛Python组区域赛(初赛)试题及参考解答
2020全国高校计算机能力挑战赛程序设计赛Python组区域赛(初赛)试题及参考解答 简介 赛题构成 代码提交说明 成绩评定 2020真题 1-1 数字与相邻的前.后数字之和可以被4整除 题目 个人对 ...
- 全国高校计算机能力挑战赛
CSDN话题挑战赛第1期 活动详情地址:https://marketing.csdn.net/p/bb5081d88a77db8d6ef45bb7b6ef3d7f 参赛话题:大学生竞赛指南 话题描述: ...
- 2020年第二届全国高校计算机能力挑战赛Excel模拟题
2020年第二届全国高校计算机能力挑战赛Excel模拟题 Excel模拟题1 1.模拟答题时间: 60分钟; 2.单选题45题(每题1分),不定向选择题10 (每题2分),判断题10题(每题1分),实 ...
最新文章
- jupyterlab debugger+显示图片
- 【错误记录】TabLayout 升级支持库版本后报错 ( support:design 支持库升级到 28.0.0 后源码发生变更 )
- android安卓开发-eclipse平台下错误记录
- Qt Creator的配置
- django默认数据库sqlite3改为mysql
- python爬虫cookie池 与ip绑定_Python爬虫防封ip的一些技巧
- leetcode53 dp and 分治
- C4D立体素材|旅游度假主题海报,设计点睛之笔
- Scala tuple
- 大数据“杀熟不杀生”;微信朋友圈广告没完;美团打车撒币上海 | 一周业界事
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 18. 基于Claim和Policy的授权 下 - 自定义Policy...
- 分布式文件系统(FastDFS+Tengine+fastdfs-nginx-module)
- 第四届组织医学与再生医学国际学术研讨会(CTERM-BT 2019)
- 2020.7.16.h5面试题
- Android中的传感器之---陀螺仪传感器
- Android 实现计时器功能,Android计时器的三种实现方式(Chronometer、Timer、handler)...
- 单片机:51最小单片机系统
- Python书写格式
- 服务器远程关机后开机开不了,远程开关机系统安全吗
- 2021-07-30-DJ-005 Django模型的数据批量加载
热门文章
- 获取当前上市公司基本信息——tushare库及基本使用
- 智慧农业,现代农业,数字农业-大数据应用,智慧农业方案,智慧农业-智能畜牧,智慧农业设施农业(大棚) 树形结构图,高标准农田(大田)树形结构图分为4层架构;
- linux常用命令加实例大全
- 基于libVLC的视频播放器之二:使用VLC-Qt播放RTSP流
- php反射型xss,利用反射型XSS漏洞,模拟获取登录账户的Cookie
- 解决Windows10下安装Ubuntu16.04双系统后开机没有Ubuntu引导
- node.js+vue婚纱影楼摄影婚庆管理系统vscode项目
- Hadoop大数据开发基础项目化教程
- express 解析post请求的数据格式
- C语言qsort的用法