
Java
S atur
要变成萤火虫~
展开
-
HDU 6206 Apple (计算几何_三点求圆 & 高精度浮点数 & Java大数_BigDecimal)
传送门 题意:确定第四个点是否在前三个点形成的圆以外,若是输出"Accepted",否则输出"Rejected"。 思路:这里应用其他大佬的证明过程(截图偏于保存,细则可移步查看)。 有了圆心 (,),再带入任意一点便能求得半径值了。 但是由于这个题的精度爆double,于是采取Java的大数BigDecimal来求解,这里先展示C++的代码思路结构。 C++代码实现: #include<bits/stdc++.h> #define endl '\n' #def原创 2021-04-20 20:49:47 · 223 阅读 · 0 评论 -
CCF 202006-1 线性分类器 (结构体&扫描判断)
传送门 题意:判断每条直线是否都能将AB两类点都分割开。 思路:以第一个A点做标准,看其他的A点是否都和它在同一侧,或是否有B点和它同一侧,将所有点都扫描遍历一遍即可。 代码实现: import java.util.*; public class Main { public static class node{ int x, y; public node(int x, int y){ this.x = x;原创 2021-04-11 10:47:36 · 140 阅读 · 0 评论 -
CCF 202009-2 风险人群筛查 (简单遍历统计)
传送门 题意:给你一个矩阵范围和 n 个人的 t 个位置,让你判断有多少人进入过这个矩阵,又有多少人连续 k 个位置一直处于矩阵内。直接遍历统计一下即可,注意逗留的人也算经过。 代码实现: import java.util.*; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = i原创 2021-04-10 02:12:09 · 142 阅读 · 0 评论 -
CCF 202009-1 称检测点查询 (简单结构体排序)
传送门 题意:目标就是找到 n 个点中离 (X,Y)直线距离最近的情况下编号最小的三个点,直接记录每个点与 (X,Y)的距离再结构体排序一下就好啦。 代码实现: import java.util.*; class node implements Comparable<node>{ int id, da; public node(int id, int da){ this.id = id; this.da = da;原创 2021-04-10 01:16:14 · 263 阅读 · 0 评论 -
Codeforces B. Partial Replacement (简单模拟)(Round #710 Div.3)
传送门 题意:给你一个只有 '.' 和 '*' 组成的长度为n的原始字符串,你可以将其任何一个 '*' 替换成 'X',但需要满足一定条件。 条件:①第一个和最后一个 '*' 必须替换,②替换过后字符串中任意两个相邻的 'X' 的下标差不得超过k。 要求:求出需要替换的最少 '*' 数。 思路:从第一个 '*' 到最后一个 '*' 遍历一遍就好,在遍历的过程中记录上次替换的位置 pre 和上次遇到 '*' 的位置 px ,每过k各位置就替换一次即可。 代码实现: import java.u原创 2021-03-26 17:02:22 · 350 阅读 · 0 评论 -
Codeforces G. Maximize the Remaining String (单调栈&字符串子序列) (Round #710 Div.3)
传送门 题意:给你一个长度为n的全由小写字母组成的字符串,要求你保持原序列顺序的前提下去重得到字典序最大的子序列。 思路: 思路其实很清晰,就是在能让大的字符靠前且自身还能在后面出现的情况下先输出较大的字符。 赛中代码基本框架没啥问题,但是万万忘了单调栈这个好东西呀!呜呜呜嗝~ 后面才知道这是个牛客原题,嗐,太垃圾了,人菜还不喜欢刷题,代码如下,具体思路见原题代码注释。 C++代码实现: #include<bits/stdc++.h> #define endl '\n' #def原创 2021-03-26 12:50:59 · 250 阅读 · 2 评论 -
CCF 202006-2 稀疏向量 (简单遍历)
传送门 思路:不外乎就是,直接暴力写就好啦,主要答案会爆int,不然就只有60%通过率了。 代码实现: import java.util.*; public class Main { static Map<String, Integer> mpa = new HashMap<String, Integer>(); static Map<String, Integer> mpb = new HashMap<String, I.原创 2021-03-24 16:28:19 · 129 阅读 · 0 评论 -
Codeforces C. Minimum Grid Path (Round 106 Rated for Div.2) (模拟枚举/前缀(和&最小值))
传送门 题意:需要你从从原点(0,0)出发走到平面第一象限中的终点(n,n),你只能向右或向上行走整数步,且过程中最多变换n-1次方向。现在告诉你n段路程分别的平均成本,试找到走到终点的最小消耗。 思路: 既然最多变换n-1次方向,即我们可以利用完n段线段的成本。 于是我们枚举最后一段时在第i次结束(走到终点),注意:这以为这之前 i-1 段路程都是交替变换方向的。 对于奇数位置,走到总距离和必须刚好等于n,于是我们找到该奇数位置 i 以及之前的所有奇数位置的最小值,让其走最多的步数,其余的位原创 2021-03-19 12:49:18 · 295 阅读 · 0 评论 -
Codeforces B. Binary Removals (Round 106 Rated for Div.2) (思维/二进制串/模拟排序))
传送门 题意:给你一个二进制串,试问是否能够通过删除一些不相邻的字符,以使得二进制串变成非降序串。 思路:原理很简单,不用管前面的0,只要满足第一次出现相邻的“11”时,后面不会再出现相邻的“00”即可。 代码实现C++: #include<bits/stdc++.h> #define endl '\n' #define null NULL #define ll long long #define int long long #define pii pair<int, int原创 2021-03-19 11:53:06 · 307 阅读 · 3 评论 -
CCF 202012-1 期末预测之安全指数 (水题)
传送门 思路:啊这,可不就是水题嘛,不过java菜狗连输入输出都要搜索┭┮﹏┭┮。 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); int n = input.nextInt(); int ans = 0, x, y;原创 2021-03-17 23:27:07 · 144 阅读 · 0 评论 -
CCF 202012-2 期末预测之最佳阈值 (结构体排序&前缀和查分)
传送门 思路: 题意所求答案即为所有比当前大的对应的==1 的个数加上比所有当前小的对应的==0 的个数和。 原理还是很简单的,针对1e5的数据直接写一个结构体以为关键值进行排序,再利用前缀和查分计算答案即可。 需注意答案要求最大的值,且过程中注意题目中==0 时的条件,所以利用map判断当前的初始位置对==0 的情况进行查分。 代码实现: import java.util.Scanner; import java.util.HashMap;...原创 2021-03-18 01:31:11 · 272 阅读 · 0 评论