
CUMTOJ
快上机考试了,简单整理一下实验课上做的题目
嘘......
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
部分和问题(dfs)
题目描述给定n个整数,判断是否可以从中选择若干数字,使得他们的和恰好为k。输入多组测试用例。对于每组测试用例,第一行一个正整数n,第二行n个整数,第三行一个整数k。1≤N≤20,输入整数及k均小于1e8。输出若可以使得和为k,输出”Yes”,否则”No”。样例输入41 2 4 713样例输出Yes#include<iostream>using namespace std;int a[1000],k,n;int dfs(int i,int sum){ i原创 2020-11-10 19:14:54 · 155 阅读 · 0 评论 -
凯撒加密法(取模移位)
题目描述凯撒加密法,或称恺撒加密、恺撒变换、变换加密,是一种最简单且最广为人知的加密技术。它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是左移3的时候:明文字母表:ABCDEFGHIJKLMNOPQRSTUVWXYZ密文字母表:DEFGHIJKLMNOPQRSTUVWXYZABC使用时,加密者查找明文字母表中需要加密的消息中的每一个字母所在位置,并且写下密文字母表中对应的字母。需要解密的人则根据事先已知的密钥反过来操作,得到原创 2020-11-10 19:14:39 · 3684 阅读 · 0 评论 -
图的m着色问题(dfs)
题目描述给定无向连通图G和m种不同的颜色,用这些颜色给图的各个顶点着一种颜色,若某种方案使得图中每条边的2个顶点的颜色都不相同,则是一个满足的方案,找出所有的方案。输入第一行有3个正整数n,k和m,分别表示n个顶点,k条边,m种颜色接下来k行,每行2个正整数,表示一条边的两个顶点输出所有不同的着色方案数样例输入5 8 41 21 31 42 32 42 53 44 5样例输出48#include<bits/stdc++.h>using namespace原创 2020-11-10 19:14:08 · 892 阅读 · 0 评论 -
数据加密(模拟)
题目描述密码学是研究编制密码和破译密码的技术科学。研究密码变化的客观规律,应用于编制密码以保守通信秘密的,称为编码学;应用于破译密码以获取通信情报的,称为破译学,总称密码学。密码是通信双方按约定的法则进行信息特殊变换的一种重要保密手段。依照这些法则,变明文为密文,称为加密变换;变密文为明文,称为脱密变换。密码在早期仅对文字或数码进行加、脱密变换,随着通信技术的发展,对语音、图像、数据等都可实施加、脱密变换。现在要求你用下面给定的方法对数据实现加密。给定长度为n的字符串S(1<=n<=2000原创 2020-11-10 19:13:46 · 557 阅读 · 0 评论 -
有趣的素数(dfs)
题目描述素数被广泛地应用于密码学中,所谓的公钥就是将想要传递的信息在编码时加入砠数,编码之后传给收信人,任何人收到此信息之后,若没有此收信人所拥有的秘钥,则在解密的过程中将会因为分解质因数过久而无法破解信息,可见素数在密码学中的重要性。现在给你n(2<=n<=16)个正整数1,2,3…n,你的任务是把这n个正整数组成一个环,使得任意相邻的两个整数之和为一个素数,输出有多少种合法方案。输入多组输入数据,每组数据只有一个正整数n(2<=n<=16)代表有n个正整数 1,2,3…n原创 2020-11-09 12:43:37 · 792 阅读 · 0 评论 -
简单的密码(dp)
题目描述密码是按特定法则编成,用以对通信双方的信息进行明密变换的符号。密码是隐蔽了真实内容的符号序列。其实就是把用公开的、标准的信息编码表示的信息通过一种变换手段,将其变为除通信双方以外其他人所不能读懂的信息编码,这种独特的信息编码就是密码。现在我们定义一种非常简单的密码,它的长度固定为n(n<=30)并且每一位只能由数字0或者数字1组成,但是有一个特殊的要求:一个密码序列中至少要有连续的3个0出现才可以,否则就是无效的。现在给定你密码序列的长度n,你的任务是计算长度为n的序列能产生多少种不同的并原创 2020-11-09 12:42:44 · 1402 阅读 · 1 评论 -
Vigenère 密码(取模移动)
题目描述16 世纪法国外交家 Blaise de Vigenère 设计了一种多表密码加密算法——Vigenère 密码。Vigenère 密码的加密解密算法简单易用,且破译难度比较高,曾在美国南北战争中为南军所广泛使用。在密码学中,我们称需要加密的信息为明文,用 MM 表示;称加密后的信息为密文,用 CC 表示;而密钥是一种参数,是将明文转换为密文或将密文转换为明文的算法中输入的数据,记为 kk。 在 Vigenère 密码中,密钥 kk 是一个字母串,k=k1k2…kn。当明文 M = m1m2…m原创 2020-11-09 12:42:32 · 317 阅读 · 0 评论 -
2n皇后问题(dfs)
题目描述给定一个 n*n的棋盘,棋盘中有一些位置不能放皇后。现在要向棋盘中放入 n 个黑皇后和 n个白皇后,使任意的两个黑皇后都不在同一行、同一列或同一条对角线上,任意的两个白皇后都不在同一行、同一列或同一条对角线上。问总共有多少种放法?n 小于等于 8。输入输入的第一行为一个整数 n,表示棋盘的大小。 接下来 n 行,每行 n 个 0 或 1 的整数,如果一个整数为1,表示对应的位置可以放皇后,如果一个整数为 0,表示对应的位置不可以放皇后。输出输出一个整数,表示总共有多少种放法样例原创 2020-11-09 12:42:20 · 121 阅读 · 0 评论 -
哈夫曼编码(贪心)
题目描述给定一只含有小写字母的字符串;输出其哈夫曼编码的长度输入第一行一个整数T,代表样例的个数,接下来T行,每行一个字符串,0<T<=2000,字符串长度0<L<=1500.输出对于每个字符串,输出其哈夫曼编码长度样例输入3hrvshlcxeasexdphiopdmntflolfbtbpplahqolqykrqdnwdoq样例输出1051115每次取频率最小的两个合并,新的结果放入#include<bits/stdc++.h>using原创 2020-11-09 12:42:08 · 577 阅读 · 0 评论 -
汽车费用(dp)
题目描述一个特别的单行街道在每公里处有一个汽车站。顾客根据他们乘坐汽车的公里使来付费。例如下表就是一个费用的单子。没有一辆车子行驶超过10公里,一个顾客打算行驶n公里(1<=n<100),它可以通过无限次的换车来完成旅程。最后要求费用最少。输入第一行十个整数分别表示行走1到10公里的费用(<=500)。注意这些数并无实际的经济意义,即行驶10公里费用可能比行驶一公里少。第二行一个整数n表示,旅客的总路程数。输出仅一个整数表示最少费用。样例输入12 21 31 40 49 58原创 2020-11-09 12:40:56 · 304 阅读 · 0 评论 -
法师康的工人(贪心)
题目描述三个法师康的工人每天早上6点到工厂开始到三条产品生产线上组装桔子手机。第一个工人在200时刻开始(从6点开始计时,以秒作为单位)在生产线上开始生产,一直到1000时刻。第二个工人,在700时刻开始,在1100时刻结束。第三个工人从1500时刻工作到2100时刻。期间最长至少有一个工人在生产线上工作的连续时间为900秒(从200时刻到1100时刻),而最长的无人生产的连续时间(从生产开始到生产结束)为400时刻(1100时刻到1500时刻)。你的任务是用一个程序衡量N个工人在N条产品线上的工作时间原创 2020-11-09 12:40:40 · 207 阅读 · 1 评论 -
判断日期是否符合格式(模拟)
题目描述我们知道一年有12个月,每个月最多有31天,年有平年和闰年之分,本题目要求如果输入一个日期,程序需要判断用户输入的日期是否正确。提示:测试输入的三个数字中,年份是正数,月份和日期有可能是负数,程序需要对这两个数为负数的情况进行判断。输入多组测试用例,对每组测试用例:用户输入是三个数字,分别表示年,月和日。 例如 2007 10 21 ,表示2007年10月21日,这个输入经过判断是正确的。又例如输入 1993 11 38 ,这个输入经过判断是错误的,因为日期不能超过31天。输出程序的输原创 2020-11-09 12:41:53 · 1009 阅读 · 1 评论 -
配对元素(贪心)
题目描述给出2个序列A={a[1],a[2],…,a[n]},B={b[1],b[2],…,b[n]},从A、B中各选出n个元素进行一一配对(可以不按照原来在序列中的顺序),并使得所有配对元素差的绝对值之和最大。输入输入的第1行为1个整数n 第2行包含n个整数,题目中的A序列。 第3行包含n个整数,题目中的B序列。输出一个数,最大配对3与6配对,2与7配对,5与4配对,6与1配对,绝对值之差和为14 对于10%的数据,有n≤20; 对于30%的数据,有n≤100; 对于50%的数据,有n≤原创 2020-11-09 12:41:45 · 451 阅读 · 0 评论 -
节食的限制(dp)
题目描述Bessie像她的诸多姊妹一样,因為从Farmer John的草地吃了太多美味的草而长出了太多的赘肉。所以FJ将她置於一个及其严格的节食计划之中。她每天不能吃多过H(5<=H<=45000)公斤的乾草。Bessie只能吃一整綑乾草;当她开始吃一綑乾草的之后就再也停不下来了。她有一个完整的N(1<=n<=50)綑可以给她当作晚餐的乾草的清单。她自然想要尽量吃到更多的乾草。很自然地,每綑乾草只能被吃一次(即使在列表中相同的重量可能出现2次,但是这表示的是两綑乾草,其中每綑乾草最原创 2020-11-09 12:41:38 · 109 阅读 · 0 评论 -
评分系统(模拟水题)
题目描述英语俱乐部举办了一个叫做“英文金曲大赛”的节目。这个节目有好多人参加,这不,成绩出来了,渊子当是很勇敢,自告奋勇接下了算出大家的总得分的任务。当时有7个评委,每个评委都要给选手打分,现在要求去掉一个最高分和去掉一个最低分,再算出平均分。结果精确到小数点后两位。输入测试数据包括多个实例。每组数据包括7个实数,代表评委们对该选手的评分。紧接着是选手的名字,名字的长度不超过30个字符。输出输出每位选手名字和最终得分,结果保留两位有效数字。样例输入10 10 10 10 10 10 9 xia原创 2020-11-08 10:22:56 · 372 阅读 · 0 评论 -
汽水瓶【25】(模拟)
题目描述有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝?输入输入文件最多包含10组测试数据,每个数据占一行,仅包含一个正整数n(1≤n≤100),表示小张手上的空汽水瓶数。n原创 2020-11-08 10:21:36 · 157 阅读 · 0 评论 -
最大子段和(dp)
题目描述给定n个整数组成的序列a1,a2,…an, 求子段和ai+ai+1+…+aj(子段可为空集)的最大值。输入包含多组测试数据。第一行为一个整数T(1<=T<=20),代表测试数据个数。每组测试数据第一行为一个整数n,代表有n个整数(1<=n<=10000)。接下来一行有n个数x(-1000<=x<=1000)。输出输出其对应的最大子段和。样例输入162 -11 4 13 -1 2样例输出18提示子段可为空集,答案为0dp[i]=max原创 2020-11-08 10:19:47 · 163 阅读 · 0 评论 -
01背包问题(dp)
题目描述已知有N种物品和一个可容纳C重量的背包。每种物品i的重量为Wi,价值为Pi。那么,采用怎样的装包方法才会使装入背包物品的总价值最大。输入包含多组测试数据。第一行为一个整数T(1<=T<=10),代表测试数据个数。接下来有T组测试数据。每组测试数据第一行为背包的重量C(C<10000)和物品个数N(N<1000)。接下来的N行分别为物品的重量cost(1<=cost<=100)和价值val(1<=val<=3000000)。(注意:结果可能超过i原创 2020-11-08 10:18:02 · 360 阅读 · 0 评论 -
矩阵连乘(dp)
题目描述给定n个矩阵{A1,A2,…,An},及m个矩阵连乘的表达式,判断每个矩阵连乘表达式是否满足矩阵乘法法则,如果满足,则计算矩阵的最小连乘次数,如果不满足输出“MengMengDa“。输入输入数据由多组数据组成(不超过10组样例)。每组数据格式如下:第一行是2个整数n (1≤n≤26)和m(1≤m≤3),表示矩阵的个数。接下来n行,每行有一个大写字母,表示矩阵的名字,后面有两个整数r和c,分别表示该矩阵的行数和列数,其中1<r, c<100。第n+1行到第n+m行,每行是一个矩原创 2020-11-08 10:09:45 · 468 阅读 · 0 评论 -
最长公共子序列(dp)
题目描述给你一个序列X和另一个序列Z,当Z中的所有元素都在X中存在,并且在X中的下标顺序是严格递增的,那么就把Z叫做X的子序列。例如:Z=<a,b,f,c>是序列X=<a,b,c,f,b,c>的一个子序列,Z中的元素在X中的下标序列为<1,2,4,6>。现给你两个序列X和Y,请问它们的最长公共子序列的长度是多少?输入输入包含多组测试数据。每组输入占一行,为两个字符串,由若干个空格分隔。每个字符串的长度不超过100。输出对于每组输入,输出两个字符串的最长公共子原创 2020-11-08 10:02:10 · 169 阅读 · 0 评论 -
光合作用(思维)
题目描述蒜头是个爱学习的孩子,他总喜欢在生活中做一些小实验,这次蒜头想研究一下光合作用。蒜头的实验材料有如下几样:神奇的种子,普通的纸箱和一些光源。一开始,蒜头将种子均匀的种在了箱子底部,你可以将其看成 X 轴,种子的位置为 X 轴上的点。然后蒜头用纸板将箱子盖住,并在纸板上安装了一些光源(具体见图,顶上的为光源,光源两边与顶部的夹角都为45度,黄色部分为光照,绿色的为植物。)。神奇的种子会在有光的情况下一直向上生长直到没光为止。现在蒜头想知道当实验结束时每颗种子的高度是多少?输入第一行输入一个整数原创 2020-11-08 09:51:26 · 172 阅读 · 0 评论 -
题解:奶牛的聚会(三分)
三分思路详解题目描述农历新年马上就要到了,奶牛们计划举办一次聚会庆祝新年的到来。但是,奶牛们并不喜欢走太远的路,这会给他们的聚会带来消极情绪,当一头奶牛的消极指数为Wi,他参加聚会所需行走的距离为si,那么他就会给聚会带来Si3*Wi的消极情绪。所有奶牛所在位置都在一条直线上,已知所有奶牛的坐标和消极指数,求如何确定聚会地点,使得所有奶牛给聚会带来的消极情绪之和最小,输出消极情绪之和的最小值。...原创 2019-06-16 09:48:38 · 1551 阅读 · 1 评论 -
跳台阶(dp)
题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。输入多组测试样例。每组测试样例包含一个整数n。(1<=n<=100)输出每组测试样例输出一行,表示青蛙跳上n级台阶的跳法数量.所得到的结果模1000000007样例输入34样例输出35dp[i]=dp[i-1]+dp[i-2]#include <bits/stdc++.h>using namespace std;#define ll long longc原创 2020-11-08 09:32:33 · 240 阅读 · 0 评论 -
内部收益率(二分)
题目描述输入输出对于每组数据,输出仅一行,即项目的IRR,四舍五入保留小数点后两位。样例输入1-1 22-8 6 90样例输出1.000.50#include <bits/stdc++.h>using namespace std;#define ll long longint n,cf[15];double l,r,mid,ans,t,tt,sum;int main(){ ios::sync_with_stdio(false); while(cin&原创 2020-11-08 09:30:19 · 585 阅读 · 0 评论 -
判断字符串是否是手机号码(水题模拟)
题目描述手机号码是一串数字,长度为11位,并且第一位必须是1,现在给出一个字符串,我们需要判断这个字符串是否符合手机格式。输入多组测试数据。每组数据输入一个字符串。输出若该字符串符合手机号码格式,输出1,否则输出0。样例输入12345612345样例输出1坑点:输入的字符串不一定全是数字#include <bits/stdc++.h>using namespace std;string s;int ok(){ for(int i=0;i<11;i++)原创 2020-11-08 09:06:59 · 2708 阅读 · 0 评论