![](https://img-blog.csdnimg.cn/20190918140053667.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
刷题整理
文章平均质量分 74
整理一些刷题收获
可爱多一点@
这个作者很懒,什么都没留下…
展开
-
2021/4/29刷题
目录相聚HNUCM校园食堂夜晚新月湖里的月亮圆柱的体积成绩排序二级目录三级目录相聚HNUCM校园食堂题目描述HNUCM的食堂重新装修了,小明决定约上朋友去食堂相聚,在食堂里,小明看到了M位男同学,N位女同学,小明是一个颜值控,因此他对每一位男生和女生都有一个颜值打分,他心里yy着想为这些单身狗们进行配对,小明真是一个关心同学的人!但小明认为配对同学的颜值之差不能超过5,注意必须是一位男同学和一位女同学才能配对,虽然小明对于可以配对的人数已经有了答案,但他想考考你的编程能力,因此他想请你帮他用编程算一下原创 2021-05-12 21:23:28 · 266 阅读 · 0 评论 -
2021《算法分析与设计》练习8
目录问题 A: 解密问题 B: 最长公共子序列问题(LCS)之备忘录法问题 C: 最长公共子序列问题(LCS)之动态规划法问题 D: 最长公共子序列问题(LCS)-构造LCS问题 E: 牛牛的字符串问题 F: 最大子段和问题 G: 绿地装饰(还不会)问题 H: 百舸争流(还不会)问题 A: 解密题目描述湖南中医药大学有含浦、东塘 2 个校区,学校办学历史悠久,前身为 1934 年的湖南国医专科学校,1953年创办湖南中医进修学校,1960 年创建普通高等本科院校——湖南中医学院,1979 年成为全国原创 2021-04-25 21:09:01 · 392 阅读 · 0 评论 -
2021年ACM寒假训练赛2
A 砝码称重题目是水题,就是有一点需要注意,就是需要加绝对值。#include<iostream>#include<cstdio>#include<string>#include<map>#include<cstring>#include<cmath>using namespace std; int main(){ int t; while(~scanf("%d",&t)) {原创 2021-02-19 22:31:35 · 480 阅读 · 1 评论 -
寒假练习一
题目:D-SortAC代码:#include<stdio.h>#include<iostream>#include<algorithm>using namespace std;int a[1000005];//这里要定义全局变量,否则会超时bool cmp(int a,int b){ return a>b;}int main(){ //int a[1000005]如果这样定义会出现爆栈的情况,此时不能正常输入 int n原创 2021-01-23 15:51:17 · 215 阅读 · 0 评论 -
2021寒假刷题
A 过半收获:由于题目输入数量很大,所以输入方式不一样。刚开始我是这样输入的for(i=1;getchar()!=’\n’;i++),但是提交的时候出现运行错误。#include<iostream>#include<cstdio>#include<string.h>#include<cstring>#include<cmath>#include<algorithm>#include<vector>#de原创 2021-03-03 23:15:37 · 93 阅读 · 0 评论 -
L1-011 A-B
题目:#include<stdio.h>#include<string.h>int main(){ char a[100005],b[100005];//保证数组足够大 gets(a); gets(b); int len1=strlen(a); int len2=strlen(b); int i,j,c[1000]={0}; for(i=0;i<len2;i++) c[b[i]]=1;//通过做标原创 2020-11-24 10:24:59 · 91 阅读 · 0 评论 -
L1-002 打印沙漏
这道题是挺简单的,但是自己还是犯了错误。丧注:在最后求和的时候千万不要用n-sum,否则就会出现错误。代码中的sum只是为了求出漏斗的层数。如果用n-sum有可能是对的,但是有时候会多算一次循环,这样结果就会出现错误。#include<stdio.h>int main(){ int n; char c; scanf("%d %c",&n,&c); int sum=1;//沙漏需要的字符个数 int i=1;//层数原创 2020-11-17 20:58:58 · 135 阅读 · 0 评论 -
L1-009 N个数求和
#include<iostream>#include<cmath>#include<algorithm>long long n,a,b,up,down=1;char c;using namespace std;int main(){ cin >> n; while(n--){ cin >> a >> c >> b; up = up * b + down * a; down = down * .原创 2020-11-21 15:56:48 · 86 阅读 · 0 评论 -
L1-006 连续因子
题目:#include<stdio.h>#include<math.h>int main(){ int n; scanf("%d",&n); int max=0,start=0,cnt=0; for(int i=2;i<=sqrt(n);i++)//如果直接使用i<=n,那程序运行会时间超限 { int temp=n; cnt=0; int j=i; while(temp%j==0)//求出有连续几位因子 { temp原创 2020-11-19 21:01:50 · 114 阅读 · 0 评论 -
团体程序设计天梯赛-练习集-L1-003 个位数统计 (15分)
题解:刚拿到这个题目,第一反应是在纠结可不可以使用整型定义,所以我第一次使用整型,结果错了。第二次用的是字符串型。#include<stdio.h>#include<string.h>int main(){ char a[1005]; int b[1005],i,len; while(~scanf("%s",a)) { len=strlen(a); memset(b,0,sizeof(b));//初始化数组b.原创 2020-09-21 23:22:53 · 272 阅读 · 0 评论 -
团体程序设计天梯赛-练习集-L1-005 考试座位号 (15分)
看到这个题目第一反应就是使用结构体,不过感觉好久没有使用结构体了。刚开始使用的时候,总是报错。后面才知道好像是因为我使用了typedef这个关键字,我只知道这个关键字能减少代码量,然后我在主函数里面进行结构体的申明,代码就没有报错了。当然我也尝试了,把typedef这个关键字删除,删除之后,不用再进行申明,代码也是正确的。#include<stdio.h>typedef struct Exam{ char num[1000];//准考证号 int a;//机试考试号 .原创 2020-09-21 22:57:16 · 171 阅读 · 0 评论 -
L1-003 个位数统计
题目:#include<stdio.h>#include<string.h>int main(){ char a[1005]; int b[1005],i,len; while(~scanf("%s",a))//不超过1000位的数,已经是大数了,所以要用字符串输出 { len=strlen(a); memset(b,0,sizeof(b));//将数组b初始化为0 for(i=0;i<l原创 2020-11-19 20:37:19 · 54 阅读 · 0 评论 -
L1-007 念数字
题目:方法一:这里是将数据处理为int型,所以只适用于小数。#include<stdio.h>int main(){ char a[100][100]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"}; int n,b[100],i=0; scanf("%d",&n); if(n<0) { printf("fu "); n=-n;原创 2020-11-20 09:44:46 · 58 阅读 · 0 评论 -
L1-005 考试座位号
题目:#include<stdio.h>typedef struct Exam//这里typedef的作用只是为了减少后面使用struct{ char num[1000]; int a; int b;};/* struct Exam//这里typedef的作用只是为了减少后面使用struct{ char num[1000]; int a; int b;}exam[1000];这种写法后面那个struct Exam exam[10原创 2020-11-19 20:50:21 · 77 阅读 · 0 评论 -
互异字符串
在这里插入图片描述思路:利用两个循环,遍历整个字符串。#include<stdio.h>#include<string.h>int main(){ char a[3000]; int i,j,b,t1; while(~scanf("%s",a)) { b=strlen(a); t1=0; ...原创 2020-02-29 10:07:41 · 267 阅读 · 0 评论 -
神奇的木头
感觉题目不难但是要分清情况,要有一个明确的思路。#include<stdio.h>int main(){ int t,n,k,a[10],i,s; scanf("%d",&t); while(t--) { s=0; scanf("%d",&n); for(i=0;i<n;i++...原创 2020-03-02 17:21:39 · 216 阅读 · 1 评论 -
2的个数
#include<stdio.h>int fun(int n){ int a=0; for(;n>0;n/=10)//判断一个数中含有2的个数。 if(n%10==2) a++; return a;}int min(int n){ int b=0,i; for(i=0;i<=n;i+...原创 2020-02-29 10:41:54 · 322 阅读 · 0 评论 -
3n+1猜想
#include<stdio.h>int main(){ int n,b,i,j; while(~scanf("%d",&n)) { b=0; while(n!=1) { if(n%2==0) { n=n/2; ...原创 2020-02-29 10:15:12 · 170 阅读 · 0 评论 -
求解最长递增子序列长度以及构造最优解
目录最长递增子序列长度构造最优解最长递增子序列长度样例输入71 7 3 5 9 4 8样例输出4b[i]是a[i]为单调递增子序列最后一个元素时,所得最长递增子序列的长度。先找出在a[i]前面并且比a[i]小的,然后比较那个b[i]最大,则此时a[i]相对的b[i]=max(b[j])+1.#include<bits/stdc++.h>using namespace std; int a[1005];int b[1005];int main(){原创 2021-05-12 21:21:59 · 139 阅读 · 0 评论 -
XP的宝藏
题目:#include<bits/stdc++.h>using namespace std;int m[100][100]={0};int main(){ int n; int i,j; while(~scanf("%d",&n)) { memset(m,0,sizeof(m)); for(i=0;i<n;i++) { for(j=0;j<n;j++)原创 2020-11-23 02:20:54 · 60 阅读 · 0 评论 -
问题 B: XP的午餐
题目:0/1背包问题:0/1背包问题是最经典的DP问题,没有之一。个人理解是通过引进一个(n+1)×(C+1)的二维表dp[][],可以把每个dp[i][j]看成一个背包,dp[i][j]表示把前i个物品装入容量为j的背包中获得的最大价值。#include<bits/stdc++.h>using namespace std;int vi[1005]={0},wi[1005]={0},dp[1005][1005];int main(){ int m,n; int i原创 2020-11-23 01:28:55 · 167 阅读 · 0 评论 -
快速判断素数——六素数法
模板:bool prime(int n){ if(n==1) return false; else if(n==2||n==3||n==5) return true; else if(n%2==0||n%3==0) return false; int k=sqrt(n)+1; for(int i=5;i<k;i+=6){ if(n%i==0||n%(i+2)==0) return false; } return true;}原创 2020-12-01 17:03:01 · 281 阅读 · 0 评论 -
01--背包问题以及构造最优解
目录01--背包问题构造最优解01–背包问题样例输入5 106 3 5 4 62 2 6 5 4样例输出15110011.从最后一个物品填表格2. 从第一个物品填表格从最后一个物品填表格#include<bits/stdc++.h>using namespace std; int w[1005];int v[1005];int m[105][105];int main(){ int n,c; while(~scanf("%d %d"原创 2021-05-12 22:14:32 · 2405 阅读 · 1 评论 -
小小yh的数论
题目:方法一:快速幂取模#include<bits/stdc++.h>long long quick_pow(long long x,long long y,long long m){long long res=1;while(y>0){ if(y&1)//取n的最后一位,并且判断这一位是否需要跳过,0跳过 res=res*x%m; x=x*x%m; y>>=1;//把n右移一位,目的是把刚处理过的n的最后一位去掉}原创 2020-11-23 11:48:26 · 75 阅读 · 1 评论 -
博弈论问题
目录公平组合游戏巴什游戏尼姆游戏威佐夫游戏公平组合游戏公平组合游戏(Impartial Combinatorial Game,ICG)满足以下特征1.有两个玩家,游戏规则对两人是公平的;2.游戏的状态有限,能走的步数也有限;3.两人轮流走步,当一个玩家不能走步时游戏结束;4.游戏的局势不能区分玩家身份,像围棋这样有黑,白两方的游戏就不属于此类问题。ICG问题有一个特征:给定初始局势,并且指定先手玩家,如果双方都采取最优策略,那么获胜者就已经确定了。也就是说,ICG问题存在必胜策略。巴什游原创 2021-06-04 17:28:20 · 193 阅读 · 1 评论 -
杭电2029回文字符串
思路:就是相当求回文数字一样,把回文字符串的长度求出来,然后除以二(len/2),再将t左边和右边的字符比较即可。利用t记录相等字符得个数。若t=len/2,那么就是回文字符串了。#include<stdio.h>#include<string.h>int main(){ int n,i,j,len,t; char a[100]; while(~scanf(...原创 2020-03-03 17:47:16 · 171 阅读 · 0 评论 -
杭电2028(Lowest Common Multiple Plus)
#include<stdio.h>int main(){ int n,a[100],i,j,max,t; while(~scanf("%d",&n)) { max=0; for(i=0;i<n;i++) { scanf("%d",&a[i]); ...原创 2020-03-01 18:24:08 · 108 阅读 · 0 评论 -
STL和基本的数据结构
目录STL概念顺序式容器Vectorstack(栈)三级目录STL概念STL(Standard Template Library)是C++的标准模板库,竞赛中很多常用的数据结构算法在STL中都有。STL包含容器(contaniner),迭代器(interator),空间配置器(allocator),配接器(adapter),算法(algorithm),仿函数(function)6个部分。顺序式容器顺序式容器包括:vector,list,deque,queue,priority_queue,stack原创 2021-07-16 01:04:15 · 1528 阅读 · 2 评论 -
2021-05-16刷题
目录A - 百步穿杨B - 三角形C - 壮志难酬D - 勤能补拙E - 熟能生巧F - 火车上的人数G - 谁拿了最多奖学金*H - 过河*I - 乘积最大A - 百步穿杨时维九月,序属三秋,辽军大举进攻MCA山,战场上两军正交锋.辽军统帅是名噪一时的耶律-James,而MCA方则是派出了传统武将中草药123.双方经过协商,约定在十一月八日正午十分进行射箭对攻战.中草药123早早就开始准备,但是他是武将而不是铁匠,造弓箭的活就交给聪明能干的你了,现在告诉你每种弓箭规格,即箭身的长度,以及每种规格弓箭所原创 2021-05-16 20:16:40 · 932 阅读 · 0 评论