CCF实训
文章平均质量分 65
Awars_zpp
奥德彪认为自己还不够努力
展开
-
湖南大学hnu实训4-11:疫情期间(动态规划)
他收集了接下来的 n 天里每一天的信息,包括健身房是否开放,或者互联网上是否有程序设计竞赛。每天阿迪要么休息,要么编写程序(如果该天有竞赛),要么做运动(如果该天健身房开放)。、an(0≤ai≤3),这里。在第二个样例中,阿迪可以在第1、3、5、7天编写程序,其他天做运动,因此没有哪天休息。在第三个样例中,阿迪可以在第1天或第2天做运动,但不能连续两天运动,因此他有一天休息。在第一个样例中,阿迪在第一天编写程序,在第三天做运动,因此他仅有两天可以休息。ai=1,第 i 天健身房不开放,但互联网上有竞赛。原创 2023-08-28 09:34:54 · 212 阅读 · 0 评论 -
湖南大学hnu实训3-11:数码管(位运算)
液晶数码管用七笔阿拉数字表示的十个数字,把横和竖的一 个短划都称为一笔,即7有3笔,8有7笔等。对于十个数字一种排列,要做到两相邻数字都可以由另一个数字加上几笔或减去几笔组成,但不能又加又减。比如 7→3是允许的,7→2不允许。任意输入一组数,判断是否符合上述规则,注意,1在右边。每行输入一个0~9的排列,数字之间用空格分隔,以-1作为输入结束。原创 2023-08-07 21:55:37 · 115 阅读 · 0 评论 -
湖南大学hnu实训3-5:最大报销额(动态规划 || 深度优先搜索)
最简单的动态规划,按照最简单的思路,dp数组记录第i个bill为最后一个的最大值,所以dp[i]初始化为bill[i],再进行比较,如果bill[i]添加在i之前的dp[j]上(dp[j]+bill[i])可以实现更大化(>dp[i])的话,就进行dp[i]的更新。允许报销的发票类型包括买图书(A类)、文具(B类)、差旅(C类),要求每张发票的总额不得超过1000元,每张发票上,单项物品的价值不得超过600元。现请你编写程序,在给出的一堆发票中找出可以报销的、不超过给定额度的最大报销额。原创 2023-08-06 11:26:04 · 436 阅读 · 1 评论 -
湖南大学实训3-2:导弹防御系统(最基础的动态规划)
某国为了防御敌国的导弹袭击,开发出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭,并观测到导弹依次飞来的高度,请计算这套系统最多能拦截多少导弹。拦截来袭导弹时,必须按来袭导弹袭击的时间顺序,不允许先拦截后面的导弹,再拦截前面的导弹。第二行,输入k个正整数,表示k枚导弹的高度,按来袭导弹的袭击时间顺序给出,以空格分隔。第一行,输入雷达捕捉到的敌国导弹的数量k(k原创 2023-08-03 11:27:15 · 122 阅读 · 0 评论 -
湖南大学实训2-9:字符串压缩(动态规划)
虽然这一题可以不按照动态规划的方法来写,但是思路仍然是一个状态的转移。输入的第一行包含3个用空格分隔的正整数:n、a和b(1≤n、a、b≤5000),第二行为一个长度为n的小写字符串。给定一个由n个小写字母组成的字符串s,需要使用最少数量的钱币来压缩它。如果|ti|=1,也就是说 ti为单个字符组成的字符串,编码时需要支付a个钱币。输出一个整数,表示你需要为压缩s所需要支付的最小钱币数。你的任务是计算压缩给定的字符串需要花费的最小钱币数。如果ti是t1t2...ti-1的子串,编码时需要支付b个钱币。原创 2023-08-03 10:59:11 · 73 阅读 · 0 评论 -
湖南大学实训2-8:Engine-字符串
每组论文的信息第一行是论文的标题,由字母(大小写均可)和空格组成,不超过10个词,每个词不超过20个字符,标题总共不超过250个字符。接下来有M行,每行是一个询问,由L(1原创 2023-07-31 22:35:41 · 63 阅读 · 0 评论 -
湖南大学实训1-8:买房与选房
最近有一批新楼盘准备开盘,总共有 m (≤1000)套房,所有的网上申报工作都已经完成并保存到二进制文件house.bin中,申请者提交了自己的基本材料,格式为:身份证号(18位,加1位空字符’\0’,共19位)、社保缴纳月数、自有住房面积、申报时间(格式为:MM-DD-YYYY,10位字符串,加1位空字符’\0’,共11位),社保缴纳月数、自有住房面积均为整数,文件最后为总报名人数 n(≤105)。10%的用例无同等条件的数据,30%的用例只有刚性需求,20%的用例只有改善性需求。原创 2023-07-30 22:08:16 · 121 阅读 · 0 评论 -
湖南大学CCF实训4-5:小希的数表(思维题)C++
OK,现在我们知道a[1]+a[2],和a[1]+a[3],那就差一个a[2]+a[3]便可求出a[1]、a[2]、a[3],知道这三个数后便可推理出其他数:删除掉s数组中的a[1]+a[2],a[1]+a[3],a[2]+a[3],再找出s中的最小的数,这个数便是a[1]+a[4],推理出a[4]。推理出a[4]后,再在s数组中删除a[1]+a[4],a[2]+a[4],a[3]+a[4],再找最小元素,推出a[5]。思维非常缜密,写代码的时候好几次把我脑袋写宕机了。以此思路推理出所有的a[i]。原创 2023-06-26 10:59:27 · 445 阅读 · 0 评论 -
湖南大学CCF实训1-9:二叉树遍历,从前序、中序到后序c++
每组测试数据第二行是二叉树的前序遍历的结果,是一个长度为n的字符串,每个节点由一个字符表示,字符是大小写英文字母及10个数字,不同的节点用不同的字符表示,也即无论前序遍历和中序遍历的字符串中没有重复的字符。需要你编写程序解决的问题是:已知一个二叉树的前序遍历和中序遍历的结果,给出该二叉树的后序遍历的结果。对于每组测试数据,输出一行,是一个长度为n的字符串,表示二叉树后序遍历的结果。每组测试数据第二行是二叉树的中序遍历的结果,也是一个长度为n的字符串。中序遍历:左子树---> 根结点 ---> 右子树。原创 2023-06-24 10:20:47 · 185 阅读 · 0 评论 -
湖南大学CCF实训3-8:ab串C++ (前缀和优化)
给定一个由字符'a'和字符'b'组成的字符串,可以删除若干字符,使得剩下来的字符串满足前后段为a,中间段为b(aaa....aaabbbb.....bbbbaaa.....aaa),区段可以没有字符(ba,ab,b,aa都是合法的),求最长剩下字符串的长度。输入为一行一个长度不超过5000的非空字符串,字符串仅由字符'a'和字符'b'组成。输出为一个整数,表示符合要求的最长剩下字符串长度。总体来说是一个很有趣的题,不看标签我都可能想不到使用前缀和。思路不难,唯一要注意的就是中间区间的处理。原创 2023-06-23 17:07:24 · 484 阅读 · 0 评论 -
湖南大学CCF实训3-3:魔咒词典C++(map索引)
其中“魔咒”和“对应功能”分别为长度不超过20和80的字符串,字符串中保证不包含字符“[”和“]”,且“]”和后面的字符串之间有且仅有一个空格。当哈利需要某个功能但不知道该用什么魔咒时,你的程序要替他找到相应的魔咒。据说魔法世界有100000种不同的魔咒,哈利很难全部记住,但是为了对抗强敌,他必须在危急时刻能够调用任何一个需要的魔咒,所以他需要你的帮助。每个测试用例占一行,或者给出“[魔咒]”,或者给出“对应功能”。每个测试用例的输出占一行,输出魔咒对应的功能,或者功能对应的魔咒。原创 2023-06-23 11:08:43 · 78 阅读 · 0 评论 -
湖南大学CCF实训3-4:打牌C++
输出有多行,代表手中的牌是否能压过对方出的牌,压过输出YES, 并列出所有可选项,可选项之间用空格分隔。[5]五张 牌型只有12345 23456 34567 45678 56789五个,后面的比前面的均大。牌只有1到9,手里拿着已经排好序的牌a,对方出牌b,用程序判断手中牌是否能够压过对方出牌。输入有多行,第一行代表手中的牌,长度不超过200个数字。接下来的每一行代表每次对方出的牌。[2]两张 如44 则55,66,77,…[4]四张 如4444 规则如[2][3]三张 如444 规则如[2]原创 2023-06-23 12:03:32 · 285 阅读 · 0 评论 -
湖南大学CCF实训2-21. 新型冠状病毒(COVID19)传播(图示解析)
注意到有⭐标记的那一条感染线段,设它的斜率为v[m],对于在0号病人(起始点为s[k],斜率为v[k])上方的人,如果他们的图像的斜率小于v[m](黄色线),则一定会被感染,如果大于v[m](蓝色线),则不会被感染。很不幸的是,其中一名跑者在 t = 0 的时刻感染了病毒,且是无症状感染者,这种病毒只会在同一时刻处在同一位置的跑者之间传播,新感染了病毒的跑者也会感染其他人,很显然,等待足够长的时间,那么病毒会感染一些特定的跑者。不仅仅与0号病人相遇后会被感染,与被感染的人相遇后也会被感染!原创 2023-06-22 21:11:37 · 563 阅读 · 0 评论 -
湖南大学CCF实训2-6:飞行棋(map模拟)
刚刚开始时,两个玩家都站在第0格上,依次扔骰子,根据骰子显示的点数走相应的格子数。比如,棋盘一共有7(0~6)个格子,玩家在第4格上,扔出了6点,最终他会走到第2格上(4->5->6->5->4->3->2)。否则字符串为"GX"(X为0到N-1之间的整数)的形式,其中X表示玩家走到这个格子时,要马上飞到第X个格子。即一旦A玩家已经在某个格子上,B玩家又走到这里,A玩家则会被踢回第0格,而B玩家留在这个格子上面。第N-1个格子是终点,一旦一个玩家走到这个格子上,该玩家获胜,游戏结束。原创 2023-06-21 10:31:25 · 115 阅读 · 0 评论