ccf
口口z
这个作者很懒,什么都没留下…
展开
-
CCF-回收站选址-python3
'''是否可以是回收站:1、该处有垃圾2、其上下左右有垃圾对选址评分:对角有几处有垃圾就有几分求 每种得分的选址数'''n = int(input()) # n处垃圾 laji = []zero = 0one = 0two = 0three = 0four = 0for i in range(n): x, y = map(int, input().split()) laji.append((x, y))for l in laji: x = l[.原创 2021-09-16 20:59:08 · 94 阅读 · 0 评论 -
CCF-二十四点-python3
'''验证算式的结果是否是24算式数字1-9,没有括号和其他字符'''n = int(input()) # n个算式is_24 = []for i in range(n): formula = input() res = 0 # 算式结果 n1 = int(formula[0]) # 四个数字 n2 = int(formula[2]) n3 = int(formula[4]) n4 = int(formula[6]) o1 = fo.原创 2021-09-08 11:44:28 · 120 阅读 · 0 评论 -
CCF-折点计算-python3
后一天较前一天上升记录1;否则记录0;判断记录的列表只要后一个数字和前一个数字不同,则是一个折点。n= int(input())sales = list(map(int, input().split())) # n个整数表示一个商店连续n天的销售量# 求这些天总共有多少个折点# 折点:连续某几天下降(上升),而遇到一天上升(下降),该天就是一个折点point = 0down_or_up = [] # 上升记录1,下降记录0for i in range(1,n): i原创 2021-09-15 16:47:52 · 714 阅读 · 0 评论 -
CCF-小明排队-python3
很简单,思路如下:记录该学生的学号tmp和原始位置idx 先从列表中删除该学生,然后在idx+q位置插入该学生n = int(input()) # 整数n,表示学生的数量,学生的学号由1到n编号m = int(input()) # 整数m,表示调整的次数students = []# 初始化队列中学生的学号for i in range(n): students.append(i+1)# m次调整,对students进行改变for i in ran...原创 2021-09-14 18:57:25 · 88 阅读 · 0 评论 -
CCF-买菜-python3
今天做这道题的时候,第一想法就是:其实就是求两条时间线段的交集所以我就直接只求了对应第i个时间段的两人时间交集提交之后只有10分!!!我反复检查 没错啊 交集啊......去网上看了其他人做的,人家都是h的第i个时间和w的所有时间段进行求交集.....做完之后果然满分.....注意两条线段的相交情况有以下几种:n = int(input()) # 时间段的数量h = [] # 小H的n个装车时间段# 装车的时候会聊天,他们想知道他们可以聊多长时间,其实就..原创 2021-09-13 14:31:25 · 169 阅读 · 0 评论 -
CCF-火车购票-python
真费劲...,很详细# 100个座位,每5个一排# 一个人可购最多不超过5张票# 安排在编号最小的相邻座位, 否则应该安排在编号最小的几个空座位def find_small_adj(o, seats): # 从小编号开始找连续o个位置是空位,且不能跨排的情况 count = 0 serie = [] isSpan = False for i in range(len(seats)): if count != o:原创 2021-09-12 21:34:44 · 97 阅读 · 0 评论 -
CCF-工资计算-python3
我脑子太差了,转不过来弯......# 求小明的税前工资t = int(input()) # 已知小明的税后工资# 每个不同阶段需要交的最大税tax = {}tax[1500] = 1500*0.03tax[4500] = (4500-1500)*0.1tax[9000] = (9000-4500)*0.2tax[35000] = (35000-9000)*0.25tax[55000] = (55000-35000)*0.3tax[80000] = (80000-55000)*原创 2021-09-12 16:23:53 · 141 阅读 · 0 评论 -
CCF-游戏-python3
提交两次90分,我就知道逻辑或者哪里某个小点有错误,果然,我把count==1 break不仅在for层放了,while层也放一个,就100了。。。n, k = map(int, input().split()) # n个小朋友,敏感数字kchildren = [1] * n # n个小朋友,初始化都为1,表示未淘汰count1 = nnum = 1 # 报的数字while count1: for i in range(n): if children[i] ==原创 2021-09-11 16:35:56 · 63 阅读 · 0 评论 -
CCF-碰撞的小球-python3
思路:先改变方向,再移动 1)位于端点会改变方向: 位于左端点----->方向变为右位于右端点----->方向变为左 2)两球位置相同会改变方向: 给定一个球ball和列表balls,判断balls中是否有与ball位置相同的same_ball, 是,改变方向: ball...原创 2021-09-10 20:49:17 · 124 阅读 · 0 评论 -
CCF-小明放学-python3
不是我写的,借鉴别人的注意: 当k==2,黄灯亮,黄灯之后是红灯,不仅要等黄灯还要灯红灯。'''红 绿 黄 循环'''finput = input().split()r = int(finput[0]) # 红灯时长y = int(finput[1]) # 黄灯时长g = int(finput[2]) # 绿灯时长ryg = r + y + gn = int(input())sum = 0def resume_time(k, t, r_time):...原创 2021-09-10 10:10:35 · 76 阅读 · 0 评论 -
CCF-小明种苹果续-python3
新增知识点:对'''N 表示苹果树个数mi 表示该行的数字个数ai 表示操作记录 若为0或负数:表示去掉苹果是abs(ai) 若为正数:表示重新统计了求T 剩下苹果总数D 苹果掉落的苹果树个数E 连续三次苹果掉落的苹果树个数'''n = int(input()) # 苹果树个数t = 0 # 剩下苹果总数d = 0 # 苹果掉落的苹果树个数e = 0 # 连续三颗树有苹果掉落的组数isDrop = []for i in rang...原创 2021-09-08 10:50:48 · 120 阅读 · 0 评论 -
CCF-最小差值-python3
我试图找一个比双循环更高效的方法,暂时没有找到'''n个数相差(差的绝对值)最小的两个数'''n = int(input())nums = list(map(int, input().split()))min = abs(nums[0]-nums[1]) # 使用第一个数和第二个数的插值作为基准for i in range(n-1): for j in range(i+1, n): diff = abs(nums[i]-nums[j]) if原创 2021-09-07 19:20:56 · 101 阅读 · 0 评论 -
CCF-跳一跳-python3
'''0 没跳上1 没有跳上中心 ---获得1分2 跳上中心 ---上一次的得分为1分或是第一次跳跃则得分为2,否则此次得分比上一次得分多两分计算得分'''finput = input().split()jump = list(map(int, finput))score = 0count = 0for i in range(len(jump)): if jump[i] == 2: count += 1 # 得2分的次数 if.原创 2021-09-07 19:11:56 · 91 阅读 · 0 评论 -
CCF-小明上学-python3
'''[0,r) 亮红灯[r, r+g) 亮绿灯[r+g, r+g+y) 亮黄灯红 绿 黄 循环显示牌上显示的数字 l(l > 0)是指距离下一次信号灯变化的秒数计算小明上学用的时间k=0 表示经过了道路,耗时 t 秒k=1、2、3 时,表示看到了红、黄、绿'''finput = input().split()r = int(finput[0])y = int(finput[1])g = int(finput[2])n = int(input())sum_time =.原创 2021-09-07 18:47:29 · 79 阅读 · 0 评论 -
CCF-小中大-python3
注意: 中位数是否是小数 判断是否能被2整除: 是: // 否:/'''n个整数,有序(降 or 升),有重复从大到小 给出 bigest middle smallest'''n = int(input())str_nums = input().split()nums = []for i in range(n): nums.append(int(str_nums[i]))a =...原创 2021-09-07 15:29:34 · 60 阅读 · 0 评论 -
CCF-小明种苹果1-python3
'''疏果:去掉树上不好的苹果N 个苹果树M 次疏果求 疏果结束后 苹果总数T 疏果个数最多的树编号 k 该树的疏果个数 P'''finput = input()n = int(finput.split()[0])m = int(finput.split()[1])T = 0 # 疏果结束后 苹果总数k = -1 # 疏果个数最多的树编号P = 0 # 最多的疏果个数 Pfor i in range(n): aplle = input() apl.原创 2021-09-07 14:31:45 · 94 阅读 · 0 评论 -
CCF-报数-python3
注意: 提交了两次只有70,debug之后发现 是count和n之间的比较出了错'''甲、乙、丙、丁四个人 从1 开始报数若数字是7的倍数 或 含有7 跳过求报n个数之后,每个人跳过的次数'''n = int(input())j = 0 # 统计跳过的次数y = 0b = 0d = 0count = 0i = 1while count < n: # 等于n的话,会多报一个数字 count += 1 if i % 7 == 0 o...原创 2021-09-07 14:13:45 · 147 阅读 · 0 评论 -
CCF-中间数-python3
新增知识点: 乌鱼子呀 对于输入数据2 6 5 6 3 5的切分,我习惯性的用 input.split(' '),但提交后显示运行错误去搜索了一下,发现使用input.split()满分......'''数组a长度n中间数:大于它的数的数量 == 小于它的数的数量输出该中间数,若不存在 则输出-1'''n = int(input())sa = input().split()a = []for s in sa: a.append(int...原创 2021-09-06 15:28:11 · 93 阅读 · 0 评论 -
CCF-线性分类器-python3
新增知识点: 无'''n个点每个点表示为 (xi,yi,ti)m个直线每个直线 c+ax+by=0求给定一条直线,能否正确分类全部的点'''finput = input()n = int(finput.split(' ')[0])m = int(finput.split(' ')[1])As = [] # 存放A类点Bs = [] # 存放B类点res = []for i in range(n): p = input() xi = in...原创 2021-09-06 14:05:23 · 154 阅读 · 0 评论 -
CCF-风险检测点-python3
新增知识点: python计算x的y次幂 pow(x, y) python如何自定义类 class Point: def __init__(self, id, dis): self.id = id self.dis = dis# 实例化类point = Point(1,2)print(point)print(point.id,point.dis) ...原创 2021-09-05 21:07:14 · 134 阅读 · 0 评论 -
CCF-期末预测之安全指数-python3
新增知识点:python里求两个数的最大值:max(x1, x2)'''n项指标该指标的重要程度wi [-10, 10]该指标的得分scorei [0, 100]安全指数y = max(0, sum(scorei * wi) )'''n = int(input())sum = 0for i in range(0, n): target = input() wi = int(target.split(' ')[0]) scorei = int...原创 2021-09-05 20:12:43 · 167 阅读 · 0 评论 -
CCF-灰度直方图-python3
idea莫名打不开了,暂时用python写吧新增python知识点:初始化一维数组 h = [0]*n初始化二维数组 h = [[0]*n]'''像素矩阵 n*m每个像素的灰度值x的范围 [0, L)该图像的直方图是长度为L的数组hhx表示灰度值是x的个数求h0,h1,h2,...'''finput = input()n = int(finput.split(' ')[0])m = int(finput.split(' ')[1])l =...原创 2021-09-05 19:07:24 · 134 阅读 · 0 评论 -
CCF-垃圾回收站-Java
这题有必要记录一下,我抱着暴力循环的方法试一试类point记录垃圾点坐标,循环遍历该点的上下左右是否都在其中;若在 循环遍历四个对角线有几个在其中,则几分;若不在,遍历下一个点本以为双重循环会超时,竟过了。import java.util.*;class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); ...原创 2021-07-19 13:49:03 · 123 阅读 · 0 评论 -
CCF-稀疏向量-Python3
前面不是说用Java的Scanner导致运行和内存超出嘛(确实第一次碰到这样的,长记性和知识了)然后我用python的字典写了,空间和时间真的不是一个level.......input_string = input()input_ = input_string.split(" ")n = int(input_[0])a = int(input_[1])b = int(input_[2])u = {} # 定义一个字典存储向量u的index和valuefor i in range(0,原创 2021-07-16 12:48:17 · 87 阅读 · 0 评论 -
CCF-稀疏向量-Java
第一次用的map存储向量u的index和value,然后判断v的index是否在u种,运行后发现内存超;第二次用两个list存储向量u的index和value,同样办法判断,结果运行超时...我查询了资料才知道,Java的Scanner效率很低.....然后用BufferReader改进在提交即满分了有一个要注意的点是,结果用long类型存储,class Reader { static BufferedReader reader = new BufferedReader(new I原创 2021-07-16 12:32:21 · 86 阅读 · 0 评论 -
CCF-最佳阈值-Java
思路:用一个list存储学生的安全指数y和是否挂科r,并用安全指数排序预测正确的个数 =<y的0个数 +>=y的1个数数组c0存储取每个安全指数y时,<y的0个数 注意:c0[0] = 0数组c1存储取每个安全指数y时,>=y的1个数注意:c1[m-1] = 1 (当list.get(m-1).r==1时) c1[m-1] = 0 (否则)在计算c0和c1其他元素时用到一维前缀...原创 2021-07-14 16:49:14 · 302 阅读 · 1 评论 -
CCF-中间数-Java
先对数组nums升序排列暴力查找数组中比nums[i]小的数的个数,比nums[i]大的数的个数,代码:import java.util.*;public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int n = scan.nextInt(); // n个数字 int[] nums = new int原创 2021-03-24 19:07:10 · 84 阅读 · 0 评论 -
CCF-分蛋糕-Java
每次都按序号小的蛋糕先分出去,不就是按顺序分吗。6 92 6 5 6 3 5用count变量计数得到蛋糕的朋友个数;用一个sum变量记录分给朋友的蛋糕重量与k比较;注意:当蛋糕已经分完了,但是sum != 0,仍需要count += 1.代码:import java.util.*;public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System原创 2021-03-23 11:36:29 · 124 阅读 · 0 评论 -
CCF-公共钥匙盒-Java
n个钥匙k个老师*[注意]:不会有多个老师同时使用一个钥匙(使用钥匙的时间不会重叠)多位老师同时还钥匙,按照钥匙编号从小到大还1、keys列表:存储k个钥匙2、teachers列表:存储k个老师的信息–钥匙编号w,开始时间s,使用时间c,归还时间b把teachers列表按照s升序排列3、waitBackKeys列表:存储待归还钥匙信息–钥匙编号w,归还时间b把waitBackKeys列表按照b升序排列,若b相同则按照w升序排列一开始就把待归还钥匙搞清。4、遍历teachers列表,更新借原创 2021-03-22 20:49:33 · 160 阅读 · 0 评论 -
CCF-打酱油-Java
直接代码:import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int n = scan.nextInt(); // 小明有n元钱,是10的整数倍,不超过300 int base = n/10; System.out.println(b原创 2021-03-17 18:32:48 · 86 阅读 · 0 评论 -
CCF-游戏-java
import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int n = scan.nextInt(); // n个小朋友 int k = scan.nextInt(); // 敏感数字k int[] children = new int[n]原创 2021-03-16 09:49:50 · 78 阅读 · 0 评论 -
CCF-最小差值-java
题目简短。求数组中两数最小差值的绝对值,很容易想到遍历数组,双重循环,时间复杂度O(n²)代码:```javaimport java.util.Scanner;public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int n = scan.nextInt(); // n个正整数 int[] nu原创 2021-03-15 21:41:15 · 160 阅读 · 0 评论 -
CCF-碰撞的小球-java
输入:n个小球线段长度Lt s之后输出:ts之后各小球的位置每个小球都需要至少存两个变量:位置pos,方向state可以用±表示右左方向,用±1表示方向,修改方向时更方便。由题意知:1)所有小球初始位置不同且小于L,所以所有小球的初始状态state=1;2)不会有三个小球同时碰撞,只可能两两球的位置相同;碰撞也就是数组中存在与某个小球position的值相同的小球。想了好久都不知道什么数据结构存小球的两个变量合适,map?list?对象?百度后,发现可以用两个数组分别存储pos和st原创 2021-03-04 20:36:01 · 157 阅读 · 1 评论 -
CCF-跳一跳-java
规则:1:表示跳在非中心;当前跳得分为12:表示跳在中心;若上一跳得分为1 或 是第一次跳则此次得分为2,否则当前跳得分为前一跳得分值加2;0:表示未跳上;由于0只出现一次,且处于最后一个,故0情况不做考虑即可。关键变量:当前跳得分值,前一跳得分值代码如下:```javaimport java.util.Scanner;public class Main { public static void main(String[] args) { Scanner scan原创 2021-03-03 19:03:57 · 221 阅读 · 3 评论 -
CCF-画图-java
这题看了只后,是肯定要考虑多个矩形之间有交集的问题。给定矩形:(x1,y1),(x2,y2)具体化:(1,1)(4,4)矩形面积:(x2-x1)*(y2-y1) (4-1)X(4-1)=3X3=9;另一种计算矩形面积的方法,也是利用坐标:x坐标从1到4:1,2,3(也可以是2,3,4)y坐标从1到4:1,2,3(也可以是2,3,4)排列组合:1-1,1-2,1-3;2-1,2-2,2-3;3-1,3-2,3-3===>最终9个点,即面积利用一个二维数组,凡画的点置为1,a[i][原创 2020-10-15 16:07:29 · 142 阅读 · 0 评论 -
CCF-相邻数对-java
这题真的非常简单了。。。。个人思路:先排序定义一个count=0,用于计数。若A[i+1]-A[i]=1,则count++。直接上j代码了:import java.util.Arrays;import java.util.Scanner;public class _201409_1 { public static void main(String[] args) { // 输入 Scanner scan = new Scanner(System.in)原创 2020-10-15 15:54:16 · 127 阅读 · 0 评论 -
CCF-ISBN码-java
ISBN 码比较简单,对键盘输入的数据进行处理,然后通过9位数字计算正确的识别码与原识别码进行比对即可,注意:识别码可能有X,所以建议识别码不要用int类型。可能用到的类型转换方法:String转int:2+“”int转String:Integer.parseInt(“2”)int转char: 10+‘0’;char转int: ‘X’-'0’```javaimport java.util.Scanner;public class _201312_2 { public s原创 2020-10-08 16:07:25 · 171 阅读 · 0 评论 -
CCF-窗口-java
题目挺长,但仔细读下来,细细分析也是有一点思路的。N个窗口,每个窗口两个坐标(x1,y1),(x2,y2)序号sM个待测点,每个点坐标(x,y)求每个点在哪个窗口内,若在多个窗口内,则取最顶层窗口。**第一个难题:键盘输入数据如何保存和处理封装Window类:属性:x1,y1,x2,y2,s;方法:check(int , int )检测点是否在本窗口;将所有的window放进一个list中。对于待测点,不需要另存。键盘输入一个点,直接检测该点,将测的结果存起来即可。第二个难题:原创 2020-10-08 15:50:37 · 191 阅读 · 1 评论 -
CCF-相反数-java
我的解决办法:题目要求输入的数组不包含重复的数1、把原数组A逐个元素求绝对值得到数组B2、将数组B中的元素去重放入map中3、相反数对数 = A.length - map.size()出现问题:提交代码提示编译出错。原因:原来我把以上三步提取出在一个单独方法findOppositeNum中,然后main()调用。解决:去掉findOppositeNum方法,全部代码都在main中, 提交正确。代码:```javaimport java.util.HashMap;import java原创 2020-10-06 16:02:05 · 185 阅读 · 0 评论 -
CCF-出现次数最多的数-java
请大家帮我看一下我的思路哪里不周全,谢谢。错误:我的思路:把键盘输入的数据直接存在TreeMap(因为它按照key排序)中。定义一个maxv,只有当value>maxv的时候才输出对应的k,v,而相等和小于的情况不考虑。代码如下:import java.util.*;public class Main{ public static void main(String[] args) { int n = new Scanner(System.in).nex原创 2020-10-02 10:57:20 · 114 阅读 · 0 评论