题目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程序设计赛总结相关推荐

  1. 第二届全国高校计算机能力挑战赛-Java程序设计赛

    第二届全国高校计算机能力挑战赛-Java程序设计赛 2020年第二届全国高校计算机能力挑战赛-Java程序设计赛前15题为选择题.16,17,18,19为编程题. 16题 题目:统计从1到N的整数中, ...

  2. 【2021年第三届全国高校计算机能力挑战赛】大数据应用赛

    [2021年第三届全国高校计算机能力挑战赛]大数据应用赛 赛题:大数据应用赛 一.赛题背景: 二.时间安排: 三.奖项设置: 四.赛题和数据: 五.评价标准: 六.作品提交要求: 七.解决方案: 八. ...

  3. 全国高校计算机能力挑战赛真题(二)

    全国高校计算机能力挑战赛Java模拟练习题(二) 竞赛官网:http://www.ncccu.org.cn/ 全国高校计算机能力挑战赛真题(一) 1.模拟时间:90分钟 2.单选题15题(每题3分), ...

  4. 非科班Java尝试全国高校计算机能力挑战赛第三届计挑赛

    写在前面:①大佬勿在意,小打小闹!②若不决参加与否,希望下文可以给你帮助(仅限程序设计赛项). 文章目录 一.个人真实情况 二.比赛最细简介 三.最全参赛准备 四.比赛时候遇到不会做怎么办? 一.个人 ...

  5. 2019C语言程序设计大赛,2019年全国高校计算机能力挑战赛 C语言程序设计决赛

    2019年全国高校计算机能力挑战赛 C语言程序设计决赛 毕竟这个比赛是第一次举办,能理解.. 希望未来再举办时,能够再完善一下题面表述.数据范围. 话说区域赛获奖名额有点少吧.舍友花60块想混个创新创 ...

  6. 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 ...

  7. 2020全国高校计算机能力挑战赛程序设计赛Python组区域赛(初赛)试题及参考解答

    2020全国高校计算机能力挑战赛程序设计赛Python组区域赛(初赛)试题及参考解答 简介 赛题构成 代码提交说明 成绩评定 2020真题 1-1 数字与相邻的前.后数字之和可以被4整除 题目 个人对 ...

  8. 全国高校计算机能力挑战赛

    CSDN话题挑战赛第1期 活动详情地址:https://marketing.csdn.net/p/bb5081d88a77db8d6ef45bb7b6ef3d7f 参赛话题:大学生竞赛指南 话题描述: ...

  9. 2020年第二届全国高校计算机能力挑战赛Excel模拟题

    2020年第二届全国高校计算机能力挑战赛Excel模拟题 Excel模拟题1 1.模拟答题时间: 60分钟; 2.单选题45题(每题1分),不定向选择题10 (每题2分),判断题10题(每题1分),实 ...

最新文章

  1. 创建型模式--单例模式
  2. (最终作业)面向对象先导课课程总结
  3. Eclipse使用新手教程
  4. python queue_Python-Queue 入门
  5. android viewbinding_程序员必懂小技巧之ViewBinding
  6. (转)前置++和后置++的区别
  7. 蓝桥杯2017初赛-迷宫-dfs
  8. mysql otter 数据同步_MySQL数据同步之otter
  9. 并查集——小米笔试题求朋友圈个数,分小组个数
  10. 条款01:视C++为一个语言联邦
  11. 苹果手机时区改不了怎么办_苹果日期和时间怎么修改不了
  12. Chem 3D模型的参数值更改方法
  13. 问题四十四:怎么用ray tracing画空间任意位置的圆环的任意片段
  14. 通过shell脚本防止端口扫描
  15. android 反编译去会员,反编译教程
  16. 以赛促产 以赛引才 |第六届世界智能大会·中国华录杯数据湖算法大赛正式启动
  17. python实现规则引擎_几种开源规则引擎(BRE)的比较 转
  18. 全国首例!法院判售假者在淘宝网说“对不起”
  19. 使用Clang作为编译器 —— 使用 Clang 交叉编译
  20. AWS解决方案架构师认证 Professional SAP-C01 2019 新版考试蓝图

热门文章

  1. 组态王怎么做超级曲线_组态王如何将历史曲线导出到电子表格中去?:
  2. 三星 970 EVO Plus T7 移动固态硬盘测评
  3. 基于libVLC的视频播放器之二:使用VLC-Qt播放RTSP流
  4. Android Home键引起的闪屏问题
  5. JS判断变量是不是数组的5种方法
  6. proteus中仿真51单片系列之--2位数码管程序
  7. 华硕Z77老主板加持NVMe SSD 成功!
  8. 中国第一封电子邮件是谁发出的?
  9. android 获取网络视频资源,Android 加载网络视频(url地址)第三方框架简用
  10. 使用memtester工具对嵌入式Linux内存压力测试