C/C++
ChanCherry、
信安小白,欢迎大家多多交流! CSDN大多数时候好像用来记笔记[捂脸]
个人博客:https://chancherry.github.io/
有事可以Q我3324838931
展开
-
计蒜客T1495 那些N位数
题目地址:https://nanti.jisuanke.com/t/T1495思路:借用列表list,将一位数情况替换成输入的n位数情况下的所有数,注意递推过程AC代码:#include <iostream>using namespace std;#include <list>list<int> li;list<int>::iterator iter;//注意迭代器的定义 int main(){ int n,p; cin>>原创 2021-04-13 12:50:01 · 312 阅读 · 0 评论 -
计蒜客 T1027 大象喝水
想到用向上取整(≥ x的最小整数)函数,去百度了下,真的有。头文件:include <math.h>向上取整:ceil(x)向下取整:floor(x)虽然百度到的都是C/C++可以用的,但是在oj里,C环境下用不了不知道怎么回事,C++可以,记下来吧。怪不得这题的通过率只有38.4%呢!AC代码:#include <iostream>using namespace std;#include <cmath>int main(){ double ..原创 2021-04-05 16:07:30 · 432 阅读 · 0 评论 -
计蒜客T1321 赶时间
这道题要注意输入,是先输入结束时间再输入开始时间,输入可以用scanf来控制。#include<stdio.h>int main(){ int bh,bm,bs,eh,em,es,sum=0; scanf("%d:%d:%d",&eh,&em,&es); scanf("%d:%d:%d",&bh,&bm,&bs); if(bh==eh){ if(bm==em){ sum+=es-bs; } else if(bm&..原创 2020-10-14 17:19:43 · 388 阅读 · 0 评论 -
计蒜客T1142 神奇的幻方
模拟题,每次循环里面判断下一次该放的位置x,y,一定要注意判断的条件要考虑多一点,过于单一会出错。#include<iostream>using namespace std;int a[50][50];int main(){ int n; cin>>n; int m=2*n-1; int x=0,y=m/2; for(int i=1;i<=m*m;i++){ a[x][y]=i; if(x>0&&y<m&&..原创 2020-10-14 15:16:39 · 217 阅读 · 0 评论 -
C/C++ 最大公约数和最小公倍数问题
要注意:计算两个非负整数的最大公约数m,n,如果其中一个是0则最大公约数是另外一个;否则将m除以n得到余数r,m和n的最大公约数即为n和r的最大公约数。这样就不会运行超时了。#include<iostream>#include<algorithm>using namespace std; int yue(int m,int n){//计算两个非负整数的最大公约数m,n,如果其中一个是0则最大公约数是另外一个//否则将m除以n得到余数r,m和n的最大公约数即为n和r的..原创 2020-10-03 17:31:47 · 1740 阅读 · 0 评论 -
计蒜客T1208 放苹果
这道题可以用动态规划来解,也可以递归来做。递归:(m,n)代表m个苹果分在n个盘子里的分法,这里分三种情况:没有苹果或只有一个盘子时,(m=0||n==1)只有一种分法。第二种是苹果的数量小于盘子的数量(m<n),这时候的分法等于(m,n)=(m,m),就像3个苹果分在5个盘子里的分法等于3个苹果在3个盘子的分法;第三种情况是苹果的数量大于等于盘子的数量,这里可以拿有没有盘子进行讨论:如果没有空盘子,那每个盘子减去一个苹果和不减去一个苹果的分法是一样的,即(m,n)=(m-n,n)。就.原创 2020-10-03 16:33:55 · 305 阅读 · 0 评论 -
计蒜客T1204 全排列
对于全排列,看过题解知道有next_permutation这个函数,可以遍历生成给定序列的下一个较大的排列,直到整个序列为降序为止。prev_permutation函数与之相反,是生成给定序列的上一个较小的排列。使用方法:next_permutation(数组头地址,数组尾地址);若下一个排列存在,则返回真,如果不存在则返回假。注意要包含头文件#include <algorithm>AC代码:#include<iostream>#include<algorithm..原创 2020-10-03 15:22:07 · 445 阅读 · 0 评论 -
计蒜客T1156 查找最接近的元素
使用二分法来找#include<iostream>using namespace std;int main() { int n,m,i,x,l,r; cin>>n; int a[n]; for(i=0;i<n;i++) cin>>a[i]; cin>>m; while(m--){ cin>>x; int l=0,r=n-1; int mid; ..原创 2020-09-28 15:36:12 · 251 阅读 · 0 评论 -
计蒜客T1138 变幻的矩阵
一开始我以为只要取某一位上的数字判断对应位置变换即可,没想到只过了17组数据,还剩3组没过,后来才发现需要全部判断,还是不能侥幸啊。#include<iostream>using namespace std;#include <cstdio>bool x[6];int main(){ int n,i,j; cin>>n; char a[11][11],b[11][11]; for(i=0;i<n;i++){ for(j=0;j<...原创 2020-09-28 10:14:45 · 351 阅读 · 0 评论 -
计蒜客T1265 补提交卡
这道题可以计算出没有做的日子之间的间隔,然后通过枚举,结合卡片数看哪几个间隔比较大,然后就补上,对应最长的连续天数就是间隔之和。#include <iostream>using namespace std;#include <vector>int main(){ int t,n,m,i; cin>>t; while(t--){ vector<int> v;//存放已经写过的日子 cin>>n>>m; i..原创 2020-09-26 14:48:38 · 251 阅读 · 0 评论 -
计蒜客T1483 数组的稳定性
这道题我一开始以为是只要给数组排序,然后用第二大的数减去最小的数就可以了,但是提交之后运行结果错误。后来问了大佬才知道,有下面这种做法,a-b的值,可以通过增大b或者减小a来缩小差值,学到了学到了。#include<iostream>using namespace std;#include <algorithm>#include <cstdio>int main(){ int n,i; cin>>n; int a[100000]; fo..原创 2020-09-26 12:47:49 · 244 阅读 · 0 评论 -
计蒜客T1384 独木舟上的旅行
进行一次独木舟的旅行活动,独木舟可以在港口租到,并且之间没有区别。一条独木舟最多只能乘坐两个人,且乘客的总重量不能超过独木舟的最大承载量。我们要尽量减少这次活动中的花销,所以要找出可以安置所有旅客的最少的独木舟条数。现在请写一个程序,读入独木舟的最大承载量、旅客数目和每位旅客的重量。根据给出的规则,计算要安置所有旅客必须的最少的独木舟条数,并输出结果。输入格式第一行输入 s(1≤s≤10),表示测试数据的组数;每组数据的第一行包括两个整数 w,n,80≤w≤200,1≤n≤300,w 为一条独木舟的最原创 2020-09-25 17:50:29 · 213 阅读 · 0 评论 -
计蒜客 T1279 最小距离字符串
定义两个长度相等的字符串 A, B 的距离 dis(A,B) 等于:A 和 B 有几个位置不同。给定三个长度为 n 的小写字母字符串 A,B,C,求一个长度为 n 的字符串 S,满足 dis(S,A)+dis(S,B)+dis(S,C) 最小,为了方便,你只需要输出最小的 dis(S,A)+dis(S,B)+dis(S,C)。输入格式输入有三行,每行一个字符串,分别为 A,B,C,保证他们都是非空的小写字母字符串,且长度都相同。字符串长度不超过 2×105。输出格式输出最小的 dis(S,A)+原创 2020-09-25 17:14:59 · 439 阅读 · 0 评论 -
计蒜客T1258 最小新整数
给定一个十进制正整数 n(0 < n < 1000000000),每个数位上数字均不为 0。n 的位数为 m。现在从 m 位中删除 k 位 (0<k < m),求生成的新整数最小为多少?例如: n = 9128456, k = 2, 则生成的新整数最小为 12456。输入格式第一行 t, 表示有 t 组数据;接下来 t 行,每一行表示一组测试数据,每组测试数据包含两个数字 n, k。输出格式t 行,每行一个数字,表示从 n 中删除 k 位后得到的最小整数。输出时每行末原创 2020-09-25 16:36:04 · 252 阅读 · 0 评论 -
计蒜客T1246 DNA排序
现在有一些长度相等的 DNA 串(只由 ACGT 四个字母组成),请将它们按照逆序对的数量多少排序。逆序对指的是字符串A中的两个字符 A[i]、A[j],具有 i < j 且 A[i] > A[j] 的性质。如字符串 “ATCG” 中,T 和 C 是一个逆序对,T 和 G 是另一个逆序对,这个字符串的逆序对数为 22。输入格式第 11 行:两个整数 nn 和 mm,n(0<n≤50) 表示字符串长度,m(0<m≤100) 表示字符串数量;第 22 至 m+1 行:每行是一个长原创 2020-09-25 11:36:28 · 657 阅读 · 0 评论 -
计蒜客T1543 做水题
蒜头君今天需要做一些水题让自己快乐。但是蒜头君现在时间不多啦,所以只能做一道题。蒜头君知道每道题需要花费的时间和完成后的快乐度。他希望做单位时间内取得快乐度最多的那一道题。如果有快乐度相同的,他希望做题号较小的那一道。输入格式第一行一个数 n,为题目个数。(1≤n≤106 )接下来 n 行每一行两个数 a,b,为耗费的时间和快乐度,都不大于 109。输出格式一个数,蒜头君选择的题目题号。输出时每行末尾的多余空格,不影响答案正确性样例输入23 54 8样例输出2这道“水题”做了.原创 2020-09-23 17:44:59 · 1748 阅读 · 0 评论 -
计蒜客T1233 书架
蒜头君最近买了一个书架用来存放奶牛养殖书籍,但书架很快被存满了,只剩最顶层有空余。蒜头君共有 N 头奶牛(1≤N≤20,000),每头奶牛有自己的高度 Hi(1≤Hi≤10,000),NN 头奶牛的总高度为 S。书架高度为 B(1≤B≤S<2,000,000,007).为了到达书架顶层,奶牛可以踩着其他奶牛的背,像叠罗汉一样,直到他们的总高度不低于书架高度。当然若奶牛越多则危险性越大。为了帮助John到达书架顶层,找出使用奶牛数目最少的解决方案吧。输入格式第 11 行:空格隔开的整数 N 和.原创 2020-09-23 14:24:13 · 544 阅读 · 0 评论 -
计蒜客T1183 提取数字串按数值排序
蒜头君给定一个字符串,请将其中的所有数字串提取,并将每个数字串作为整数看待,按从小到大顺序输出结果,输出的整数之间以逗号间隔。如果没有数字,则输出 00;例如:*1234.345#6781ad9jk81-11101?aght88ir09kp,其中的整数包括:1234,345,6781,9,81,11101,88,91234,345,6781,9,81,11101,88,9从小到大排序后,应该输出:9,9,81,88,345,1234,6781,111019,9,81,88,345,1234,6.原创 2020-09-22 23:50:44 · 1596 阅读 · 0 评论 -
计蒜客T1155 病人排队
病人登记看病,编写一个程序,将登记的病人按照以下原则排出看病的先后顺序:老年人(年龄 ≥60 岁)比非老年人优先看病。老年人按年龄从大到小的顺序看病,年龄相同的按登记的先后顺序排序。非老年人按登记的先后顺序看病。输入格式第 11 行,输入一个小于 100100 的正整数,表示病人的个数;后面按照病人登记的先后顺序,每行输入一个病人的信息,包括:一个长度小于 1010 的字符串表示病人的 ID(每个病人的 ID 各不相同且只含数字和字母),一个整数表示病人的年龄(不超过 100100 岁),.原创 2020-09-22 23:46:33 · 645 阅读 · 0 评论 -
计蒜客T1100 计算2的N次方
任意给定一个正整数 N(N ≤ 100),计算 2 的 N 次方的值。输入格式输入一个正整数 N。输出格式输出 2 的 N 次方的值。提示高精度计算。输出时每行末尾的多余空格,不影响答案正确性样例输入5样例输出32思路:使用两个 vector 数组 mul 和 ans 来分别存储 上一次乘以二的结果 和 下一次乘以二 的结果。首先把 1 放到mul 数组中,然后进行乘以 2 ,将得出的结果 2 存储到 ans数组中;然后我们将 mul 数组清空,再将上一次乘以 2 的结果存储到.原创 2020-09-20 23:53:02 · 708 阅读 · 0 评论 -
计蒜客T1098 大整数加法
求两个不超过 200 位的非负整数的和。输入格式有两行,每行是一个不超过 200 位的非负整数,可能有多余的前导 0。输出格式一行,即相加后的结果。结果里不能有多余的前导 0,即如果结果是 342,那么就不能输出为 0342。输出时每行末尾的多余空格,不影响答案正确性样例输入2222222222222222222233333333333333333333样例输出55555555555555555555一开始想的就是拆分一位一位相加然后进位存放在一个数组里,最后倒序输出。但是因为前导.原创 2020-09-20 23:30:57 · 447 阅读 · 0 评论 -
计蒜客T1195 和数
蒜头君给定一个正整数序列,判断其中有多少个数,等于数列中其他两个数的和。比如,对于数列1 2 3 4,这个问题的答案就是 2,因为 3 = 2 + 1, 4 = 1 + 3。输入格式共两行,第一行是数列中数的个数 n ( 1 ≤ n ≤100),第二行是由 n 个不大于 10000 的正整数组成的数列,相邻两个整数之间用单个空格隔开。输出格式一个整数,即数列中等于其他两个数之和的数的个数。输出时每行末尾的多余空格,不影响答案正确性样例输入41 2 3 4样例输出2这一题一开始我看通.原创 2020-09-20 17:17:02 · 1063 阅读 · 0 评论 -
计蒜客T1583 非常男女
近来,蒜头君致力于研究班上同学的配对问题(别想太多,仅是舞伴),通过各种推理和实验,他掌握了大量的实战经验。例如,据他观察,身高相近的人似乎比较合得来。万圣节来临之际,蒜头君准备在学校策划一次大型的“非常男女”配对活动。对于这次活动的参与者,蒜头君有自己独特的选择方式。他希望能选择男女人数相等且身高都很接近的一些人。这种选择方式实现起来很简单。他让学校的所有人按照身高排成一排,然后从中选出连续的若干个人,使得这些人中男女人数相等。为了使活动更热闹,蒜头君当然希望他能选出的人越多越好。请编写程序告诉他,他.原创 2020-09-14 16:44:04 · 412 阅读 · 0 评论 -
紫书C++STL初步例题笔记
STL(Standard Template Library),即标准模板库。下面是紫书中的几个相关例题,记录学习一下。例题5-1 大理石在哪儿现有N个大理石,每个大理石上写了一个非负整数。首先把各数从小到大排序,然后回答Q个问题。每个问题问,是否有一个大理石写着某个整数x,如果是,还要回答哪个大理石上写着x。排序后的大理石从左到右编号为1~N。(在样例中,为了节约篇幅,所有大理石上的数合并到...原创 2020-05-11 08:40:39 · 427 阅读 · 0 评论 -
C语言报错:unknown type name 'bool'
Main.c:5:1: error: unknown type name 'bool' bool zhi(int n){ ^Main.c: In function 'zhi':Main.c:8:10: error: 'false' undeclared (first use in this function) return false;报错的意思:未知的类型名:‘bool’在C...转载 2020-04-26 08:55:41 · 24819 阅读 · 3 评论 -
C++序列容器vector常见用法总结
vector的介绍vector 向量类,是一种对象实体, 能够容纳许多其他类型相同的元素, 因此又被称为容器。 与string相同, vector 同属于STL(Standard Template Library, 标准模板库)中的一种自定义的数据类型, 可以广义上认为是数组的增强版。在使用它时, 需要包含头文件 vector, 即#include<vector>,一般加上usin...转载 2020-03-28 23:21:35 · 319 阅读 · 0 评论 -
C++排序sort()
sort()使用需要头文件<algorithm>和using namespace std;函数名功能描述sort对给定区间所有元素进行排序stable_sort对给定区间所有元素进行稳定排序partial_sort对给定区间所有元素进行部分排序partial_sort_copy对给定区间复制并排序nth_element找出给定区间...原创 2020-03-15 15:49:47 · 581 阅读 · 0 评论 -
C++中getline()、gets()等输入函数的用法
https://blog.csdn.net/JIEJINQUANIL/article/details/50802902转载 2020-02-25 21:28:18 · 400 阅读 · 0 评论 -
字符(串)输入输出函数(C语言)
太久没看C了,加上今天刷题刷到了字符(串)输入输出相关问题,想着还是总结一下吧。C里面是没有字符串的(C++里面用string类),由于字符串是一系列单个字符的组合,所以它用char 类型的数组来表示字符串。scanf()读取字符、字符串都可。char c;char ch[100];scanf("%c",&c); //读取字符scanf("%s",ch); //读取字符串s...原创 2020-01-29 19:42:03 · 2398 阅读 · 0 评论 -
难以抑制的❤
七夕就要来了,在微信推送上看到好玩的,一个会自动变色的心,分享给大家~~#include <stdio.h>#include <math.h>#include <stdlib.h>#define I 20#define R 340#include <string.h>int main(){ system("mode con co...原创 2019-08-02 19:49:11 · 252 阅读 · 0 评论 -
const *p,*const p,char const *p等类似问题总结
const *p & *const p看const离哪个近const *p即const (*p),p指向地址的内容不可改变,但指向的地址可以改变;*const p即 *(const p),const修饰的是地址,故p指向的地址不可改变,但是p指向地址的内容可以改变。const总结常变量: const 类型说明符 变量名常引用: const 类型说明符 &引用名常对...原创 2019-04-11 18:05:42 · 1093 阅读 · 0 评论