题解
文章平均质量分 56
主要是oj上的题目
heng6868
这个作者很懒,什么都没留下…
展开
-
一道不会的题3
给出一个元素个数不超过 3030 的集合,元素为 [1,10^8][1,10 8 ]范围内的整数,求该集合所有子集的元素和。输入格式若干个数,表示集合中的元素。输出格式一个整数,表示所有子集元素之和。输出时每行末尾的多余空格,不影响答案正确性样例输入1 4样例输出10...原创 2022-08-19 16:13:59 · 280 阅读 · 0 评论 -
map嵌套
Input第一行正整数N(0<N<=10)表示有N组测试数据.每组测试数据的第一行是一个整数M(0<M<=100),表示工有M次成功的交易.其后有M行数据,每行表示一次交易,由水果名称(小写字母组成,长度不超过80),水果产地(小写字母组成,长度不超过80)和交易的水果数目(正整数,不超过100)组成Output对于每一组测试数据,请你输出一份排版格式正确(请分析样...原创 2022-08-19 16:13:20 · 286 阅读 · 0 评论 -
大整数减法
#include<bits/stdc++.h>using namespace std;string c,a,b;int cmp(string a, string b){ if(a.length()==b.length()) { if(a==b) return 2; else if(a>b) return 1; else if(a<b) r...原创 2022-08-19 16:12:57 · 186 阅读 · 0 评论 -
一道不会的题目2
【问题描述】小明和朋友们一起去郊外植树,他们带了一些在自己实验室精心研究出的小树苗。小明和朋友们一共有 n 个人,他们经过精心挑选,在一块空地上每个人挑选了一个适合植树的位置,总共 n 个。他们准备把自己带的树苗都植下去。然而,他们遇到了一个困难:有的树苗比较大,而有的位置挨太近,导致两棵树植下去后会撞在一起。他们将树看成一个圆,圆心在他们找的位置上。如果两棵树对应的圆相交,这两棵树就不适合同时植下(相切不受影响),称为两棵树冲突。小明和朋友们决定先合计合计,只将其中的一部分树植下去,保证没有互相冲突的树。原创 2022-08-19 16:12:13 · 100 阅读 · 0 评论 -
一道不会的题目
【问题描述】如果一个序列的奇数项都比前一项大,偶数项都比前一项小,则称为一个摆动序列。即 a[2i]<a[2i-1], a[2i+1]>a[2i]。小明想知道,长度为 m,每个数都是 1 到 n 之间的正整数的摆动序列一共有多少个。【输入格式】输入一行包含两个整数 m,n。【输出格式】输出一个整数,表示答案。答案可能很大,请输出答案除以10000的余数。【样例输入】3 4【样例输出】14【样例说明】以下是符合要求的摆动序列:2 1 22 1 32 1 43 1 23 1 33 1 43 2 33原创 2022-08-19 16:11:46 · 71 阅读 · 0 评论 -
c语言的小发现
c语言的小发现原创 2022-08-19 16:10:01 · 242 阅读 · 0 评论 -
voliate类型的原理及用法
voliate类型,机器才读取执行代码读取内存后,将读取的内容存到高速缓冲区里,在硬件里是寄存器,这样在一下次读取的时候就可以直接从高速缓存区里面读取(cache),这也是读取速度加快的原因,但是如果在内存中改变这个变量,而且刚刚读取过这个内容,就不会再访问地址去读取。例如:int a=i;//从i的所在地址读取值,并放入高速缓冲区或者寄存器int b=i;//两次读取之间没有改变i的操作,根据编译器的优化原则,直接从缓冲区里面取值再赋值,而不会再去内存里寻址。这样在一般的程序里不会出现错误,但是在原创 2021-04-08 10:03:24 · 497 阅读 · 0 评论 -
切割绳子组三角形
不同的切割顺序切出三段长度分别一致的绳子,视为同一种方案,例如n=12时,按长度3、4、5的顺序切割,和按长度4、3、5的顺序切割,都可以拼出直角三角形,但两者是一种方案。原创 2019-12-09 21:20:21 · 589 阅读 · 0 评论 -
外国友人读数字
小D最近交了一个外国朋友,因为一些不可描述的原因,小D需要发送一堆数字给这位外国友人,这堆数字有整数有小数。大家知道,有些外国友人读数字时,习惯每三位数字用一个逗号分隔,很不幸的是,小D要发送的这些数字并没有用逗号分隔。为了照顾外国友人的感受,请你帮小D处理一下这些数字,每三位用逗号分隔一下,如果数字中有多余的后缀0,请把多余的后缀0去掉,去掉多余的后缀0如果小数点后没有小数了,请把小数点也...原创 2019-12-09 21:09:16 · 157 阅读 · 1 评论 -
I - Chips Moving
You are given n chips on a number line. The i-th chip is placed at the integer coordinate xi. Some chips can have equal coordinates.You can perform each of the two following types of moves any (possi...原创 2019-12-12 15:54:09 · 278 阅读 · 0 评论 -
统计bug
题目描述公司会把每个月出现BUG的人都记录下来,然后月底复盘时会统计该月BUG数最多的人,请帮忙统计出BUG数最多的两个人。输入读入N(3<=N<=10000),表示该月出现BUG的总次数,后面N行表示每次BUG的所属人(人名均为英文字母,且长度不超过10,并且保证同一个名字均为连续出现)输出样例6FakerFakerFakerXiaohuUZIUZI输出F...原创 2019-12-17 17:48:27 · 368 阅读 · 0 评论 -
strcmp注意事项
比较规则:字符串比较函数strcmp的比较,两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇’\0’为止。基本形式为strcmp(str1,str2),若str1=str2,则返回零;若str1<str2,则返回负数;若str1>str2,则返回正数。...原创 2019-12-18 13:17:40 · 1163 阅读 · 0 评论 -
两面记录法记录数据
标题有趣的数字小D同学发现某些整数具有优美的性质,例如一个整数x,如果它的两倍即2x,两者拥有的数字一模一样只是数字排序顺序不同时,我们认为数字x是有趣的,例如x=125874时,2x=251748,此时x和2x拥有一模一样组成数字,只是数字的排列顺序不同,所以x是有趣的。现在小D同学给你一些数字,你能分辨出哪些数字是有趣的,哪些数字不是有趣的么?input多组测试数组,以EOF结束每组测...原创 2019-12-10 16:45:04 · 138 阅读 · 3 评论 -
回文数
对称的数字小D同学发现了一些数字与其反转数字相加求和得出新数字,新数字再不断重复这个过程,最终可能得到一个回文数,当然啦也有些数字不断重复这个过程也得不到回文数。例如数字349,有如下过程 349 + 943 = 1292 1292 + 2921 = 4213 4213 + 3124 = 7337 也就是经过3次迭代得到了了一个回文数。现在小D同学给你一个数字,问你能不能在1到100次迭代内(包...原创 2019-12-10 17:51:46 · 340 阅读 · 1 评论 -
有多少天?
题目描述 小D同学对日期类的问题很是有兴趣,已知1900-01-01是星期一,那么小D想知道给定两个年限x,y,在[x,y]内的每一年,每月的z号,是星期w的天数有多少天。例如x,y,z,w分别是1900、2000、12、7,表示在1900年到2000年之间的每一年(包括1900年和2000年),每月的12号,有多少天是星期七(周日)。输入 多组测试数据,以EOF结束。 每组测试数据一行,每行四...原创 2019-12-12 11:57:25 · 344 阅读 · 3 评论 -
优美子数组
探寻数组中能组成奇数数组多少个?题目描述 小D同学经常与别人有一些不一样的见解,例如小D同学认为,如果一个数组中的数字全部都是奇数,那么小D认为这个数组是一个优美的数组。现在给定一个数组,你能告诉小D,从这个数组中可以截取多少个连续的子数组,是优美的数组么?输入多组测试数据,以EOF结束。每组测试数据有两行,第一行一个整数n,表示数组的长度。接下来一行有n个整数,表示一个长度为n的数组的数...原创 2019-12-10 19:13:08 · 339 阅读 · 0 评论 -
食物链计数(记忆化搜索)
题目背景你知道食物链吗?Delia 生物考试的时候,数食物链条数的题目全都错了,因为她总是重复数了几条或漏掉了几条。于是她来就来求助你,然而你也不会啊!写一个程序来帮帮她吧。题目描述给你一个食物网,你要求出这个食物网中最大食物链的数量。(这里的“最大食物链”,指的是生物学意义上的食物链,即最左端是不会捕食其他生物的生产者,最右端是不会被其他生物捕食的消费者。)Delia 非常急,所以你只...原创 2020-03-17 15:49:11 · 738 阅读 · 0 评论 -
最大子矩阵板子
校长先给他们一个N*N矩阵。要求矩阵中最大加权矩形,即矩阵的每一个元素都有一权值,权值定义在整数集上。从中找一矩形,矩形大小无限制,是其中包含的所有元素的和最大 。矩阵的每个元素属于[-127,127],例如0 –2 –7 09 2 –6 2-4 1 –4 1-1 8 0 –2在左下角:9 2-4 1-1 8和为15。几个女孩子有点犯难了,于是就找到了电脑组...原创 2020-03-19 14:21:35 · 179 阅读 · 0 评论 -
贪心经典题
[JSOI2007]建筑抢修时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 262144K,其他语言524288K64bit IO Format: %lld题目描述小刚在玩JSOI提供的一个称之为“建筑抢修”的电脑游戏:经过了一场激烈的战斗,T部落消灭了所有z部落的入侵者。但是T部落的基地里已经有N个建筑设施受到了严重的损伤,如果不尽快修复的话,这些建筑设施将会完全 毁坏。现在的情况是:T部落基地里只有一个修理工人,虽然他能瞬间到达任何一个建筑,但是修复每个建筑都需要一定的时间。同原创 2020-07-20 17:38:10 · 173 阅读 · 0 评论 -
大整数减法
#include<bits/stdc++.h>using namespace std;string c,a,b;int cmp(string a, string b){ if(a.length()==b.length()) { if(a==b) return 2; else if(a>b) return 1; else if(a<b) r...原创 2020-03-04 17:49:59 · 141 阅读 · 0 评论 -
小希的迷宫(HDU1272)
上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走。但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一个通道连通了房间A和B,那么既可以通过它从房间A走到房间B,也可以通过它从房间B走到房间A,为了提高难度,小希希望任意两个房间有且仅有一条路径可以相通(除非走了回头路)。小希现在把她的设计图给你,让你帮忙判断她的...原创 2020-03-08 11:47:18 · 120 阅读 · 0 评论 -
strlen注意事项
C语言中strlen函数只有在遇到一个字符串的末尾没有\0结束符时,会在内存条中继续查找\0结束符。这样返回不是一个字符串的长度转载 2020-11-14 19:38:30 · 568 阅读 · 0 评论 -
括号序列
由1对括号,可以组成一种合法括号序列:()。由2对括号,可以组成两种合法括号序列:()()、(())。由4对括号组成的合法括号序列一共有多少种?【答案提交】这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。题解这个题主要掌握一点就可以,就是所有不和=合法的括号序列一定是从某一处开始,前面的左括号个数小于右括号个数,控制这一点就行。就是在dfs时,在准备加入右括号时,判断左括号的个数是不是小于右括号个数,如果加之后小于则不合法,原创 2020-08-27 16:41:35 · 447 阅读 · 0 评论 -
快速排序
#include<bits/stdc++.h> using namespace std;void swap(int a[],int p,int j){ int t=a[j]; a[j]=a[p]; a[p]=t;}int patition(int a[],int p,int r){ int i=p; int j=r+1; int x=a[p]; wh...原创 2020-03-05 11:26:29 · 122 阅读 · 0 评论 -
已知二叉树的中序后序,求先序
大体分三个步骤:STEP1:后后序遍历的最后一个是根节点,输出根节点;STEP2:根据根节点再去中序遍历中划分左子树和右子树,再从中序得出左子树的个数,确定后序中左子树的范围,递归遍历左子树,再从中序中获取右子树的的个数,再后序中获取右子树的范围,递归遍历;STEP3:重复前两个步骤,即可获得先序遍历;#include<bits/stdc++.h>using namespace std;string s1,s2;void dfs(int l1,int l2,int r1,int r原创 2020-08-07 11:30:49 · 1552 阅读 · 0 评论 -
线段树区间求和模板
#include<stdio.h>#include<iostream>#include<string.h>using namespace std;struct node{ int l; int r; long long sum;}tree[4000005];long long add[4000005];void build(int x,i...原创 2020-04-21 18:26:12 · 234 阅读 · 0 评论 -
欧拉筛(线性筛)
欧拉筛多用于筛素数,时间复杂度是o(n);主要原理:合数=最小质因子*合数(质数)这个合数的组成是唯一的,欧拉筛里面只在这种情况筛一次,也就是每个数就筛一次,可以完成o(n)的复杂度。每当枚举到一个数,把这个数当作后面的那个数,在已经得到的质数里枚举当作最小质因子,看看这样的组合能找到哪个合数,但是要注意,前面的质数一定要是最小质因子,如果if(i%prim[j]==0)则,前面的质数不是最小质因子,因为i可以拆成更小的质因子,导致prim[j]不是将要得到的合数的最小质因子,这样会造成这个将要得到的原创 2020-08-11 09:42:45 · 1628 阅读 · 0 评论 -
对顶堆的故事
总结:用大顶堆和小顶堆来实现,控制两个堆的个数来实现将第几个数暴露在两个堆的中间,这样就可以随时输出第几个数,随意以一个顶堆的top()为标准,判断下一个数加在哪个堆里,并时刻控制数量,这样就可以将要求的第几个数一直存疑两个顶堆的top()之间。#include<stdio.h>#include<queue>using namespace std;priority_queue<int,vector<int>,greater<int> >mn原创 2020-07-20 16:18:44 · 99 阅读 · 0 评论 -
c++class初始化小问题
#include<bits/stdc++.h>using namespace std;class Student{public: int scores[3]; };int main(){ Student l[2]={{0,5,6},{0,1,2}}; cout<<l[1].scores[0];}类中的public数据可以通过这样的方式初始化,有两个前提:1.初始化的数据必须是public;2.没有定义构造函数;定义构造函数后,{}里的内容需要按照构原创 2020-10-30 23:18:45 · 338 阅读 · 0 评论 -
逆元+尺取
题目描述给出一个长度为 n 的数列 a_1,a_2,\ldots,a_na1 ,a2 ,…,an ,求其长度为 k 的连续子段的乘积对 998244353 取模余数的最大值。输入描述:第一行两个整数n,k。第二行n个整数,a_1,a_2,\ldots,a_na1 ,a2 ,…,an 。输出描述:输出一个整数,代表最大余数。示例1输入...原创 2020-02-21 18:04:29 · 642 阅读 · 0 评论 -
利用map特性解题
链接:https://ac.nowcoder.com/acm/contest/3665/B来源:牛客网Every problem maker has a flower in their heart out of love for ACM. As a famous problem maker, hery also has a flower.Hery define string T as flo...原创 2020-02-12 20:04:36 · 156 阅读 · 0 评论 -
strrev的替换(某oj太垃圾没法用strrev函数)
#include<stdio.h>#include<string.h> int main(){ int i,k=0; char str[10000],temp[100000]; scanf("%s", str); for(i=strlen(str)-1;i>=0;i--) { temp[k++]=str[i]; } temp[k]='\0';...原创 2019-12-18 15:42:39 · 568 阅读 · 0 评论 -
括号匹配
题目描述给出一个仅包含’[’,’]’,’(’,’)’,’{’,’}'六种字符的括号序列,判断其是否合法。空串是一个合法的括号序列如果A, B 都是合法的括号序列,那么AB也是合法的括号序列如果A是合法的括号序列,(A) , [A], {A}都是合法的括号序列输入描述:一行一个字符串S,只包含题目中的六种括号字符输出描述:输出为一行"Yes" 或"No"示例1输入复制(){}...原创 2020-02-11 15:34:38 · 292 阅读 · 0 评论 -
大数加法
#include<bits/stdc++.h>using namespace std;char c[1000],a[1000],b[1000];int main(){ int i,j; cin>>a>>b; strrev(a); strrev(b); if(a[0]=='0'&&b[0]=='0') { prin...原创 2020-03-04 15:39:12 · 76 阅读 · 0 评论 -
如何把二维数组传参给函数
1、传递“数组指针”#include <stdio.h>void output( int (*pa)[3], int n )//这个函数只能输出n行3列的二维数组{ int i,j; for( i=0;i<n;i++ ){ for( j=0;j<3;j++ )printf("%d “, pa[i][j] );printf(”\n"); }}void main(...原创 2019-12-26 21:43:08 · 7812 阅读 · 0 评论 -
H - Pots
给你两个容器,分别能装下A升水和B升水,并且可以进行以下操作FILL(i) 将第i个容器从水龙头里装满(1 ≤ i ≤ 2);DROP(i) 将第i个容器抽干POUR(i,j) 将第i个容器里的水倒入第j个容器(这次操作结束后产生两种结果,一是第j个容器倒满并且第i个容器依旧有剩余,二是第i个容器里的水全部倒入j中,第i个容器为空)现在要求你写一个程序...原创 2020-02-01 16:48:47 · 234 阅读 · 0 评论 -
队列模拟
模拟食堂排队打饭,当一个人过来时,先看看有没有自己班里的同学,如果有,就会插到班里同学的最后面。如果没有自己班里的同学,就排到队伍的最后面。模拟这个过程,需要输出队首的元素。有多组测试数据,每组数据第一行一个整数,表示班级的数量t。接下来t行,每行第一个数表示该班级的人数k,接下来跟着k个整数,表示每个学生的编号。学生的编号范围是[0,999999],一个班级最多1000个人。接下来是指令...原创 2020-02-16 19:35:22 · 356 阅读 · 0 评论 -
输出字符串注意!!!
如果不是使用scanf函数的%s格式或gets函数输入字符串(例如getchar),请一定要在输入的每个字符串后加‘\0’,否则printf和puts输出字符串会因无法识别字符串而输出一堆乱码,如:#include<stdio.h>int main(){char str[15];for(int i=0;i<3;i++){str[i]=getchar();}puts(...原创 2019-12-18 13:47:56 · 196 阅读 · 0 评论 -
2020牛客算法寒假基础训练营6——B-图
题目描述现在有一个N个点的有向图,每个点仅有一条出边你需要求出图中最长的简单路径包含点的数量(1≤N≤1,000,000)输入描述:第一行一个数字N接下来N行,每行一个正整数,第i+1行的数字表示第i个点出边终点的编号(点从1开始标号)输出描述:一行一个数字,最长的简单路径的长度示例1输入复制3232输出复制3#include<iostream>...原创 2020-02-19 22:19:24 · 195 阅读 · 1 评论 -
2020牛客寒假训练营5
链接:https://ac.nowcoder.com/acm/contest/3006/D来源:牛客网题目描述牛牛在辛苦的一天的比赛之后,要去找牛妹玩,其实牛妹那天也在比赛。他为了找到牛妹,要尽快的从自己的比赛地到她的比赛地。还记得吗,比赛地都是只在xx轴上的,所以两个人的坐标都满足y=0y=0。牛牛除了可以以11单位距离/单位时间的速度移动任意时间以外,还可以花费11单位时间进行闪现。每...原创 2020-02-14 19:24:29 · 130 阅读 · 0 评论