函数使用
四维2000
SW2000
展开
-
LightOJ1282 leading and trailing (double技巧)
题意:给定两个数n,k 求n^k的前三位和最后三位解析:后三位很好弄,快速幂就好了,前三位当然也可以类似快速幂一样模拟,把后面的位数省去,但是这种做法也就和double的原理一样,就想着用double来做就可以方便很多。需要注意的是double的有效精确位数也就15位,所以也没必要保存很多位,一旦超过30位就除到15位就好了。另外看还有大佬使用log10函数来做,感觉也挺有意思的,但是怕精度有损失就还是自己模拟吧。然后这道题还有个坑,是后三位如果不到三位要补0代码:#include原创 2020-09-28 08:30:24 · 184 阅读 · 0 评论 -
UVA - 11827 Maximum GCD(流输入)
题意:求所有数对的gcd的最大值解析:单独题意没什么难度,唯一的难点是没有给出m,也就是读入个数不确定,这里可以读入字符串后用快读来模拟,但也可以用stringstream,非常高级的一种用法,需要注意的一点是使用getline时也存在缓冲区的问题,需要视情况多读一个。代码:#include <bits/stdc++.h>#define x first#define y second#define mid (l+r>>1)#define lo (o<<原创 2020-09-28 08:22:00 · 135 阅读 · 0 评论 -
2020牛客多校二H Happy Triangle (STL 线段树)
题意:一个集合可以对其做三种操作,加上一个x,减去一个已有x,给出一个x问时候存在a和b使得abx可以围成一个三角形分析:看到集合操作马上想到用set,其中可以再用set的指针在map上记录下所以数值之间的差,但这时存在一个问题就是可能存在两个数,这两个数的差满足条件但两个数的和却太小不到x,因此我所用的方法就是提前把所有差都求出来后离散键线段树,线段树上存的是该差中的最大和,这样再动态对每个操作进行修改查询代码:#include <bits/stdc++.h>#define x原创 2020-09-18 10:17:17 · 246 阅读 · 0 评论 -
Gym - 101401G Balloons (B) (set)
题意:一排三个颜色的气球,m个操作,每次把一个范围内的气球颜色改变,只能改变一次,问每次改变后各个颜色的气球有多少个思路:很有意思的一道题,看到题时感觉就是一个线段树区间查询区间修改,但是写线段树的时候发现会很麻烦,于是想到了set模块中自带的二分函数,每次通过二分找到最左边的值,然后向右边扫过去,由于每个值最多也就变化一次,每次选一个值后就可以将这个值删去。这样的话做法就会简化特别多。代...原创 2020-02-12 08:45:26 · 177 阅读 · 0 评论 -
ZZUSOFTOJ 拦截导弹 (函数使用)
1116: 拦截导弹时间限制:1 Sec内存限制:128 MB提交:4解决:3[提交] [状态] [讨论版] [命题人:外部导入]题目描述 某国为了防御敌国的导弹袭击,发展出一种导弹 拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的 导弹来袭。由于该系统还在试用阶段...原创 2019-03-27 21:40:37 · 465 阅读 · 0 评论 -
PTA 估值一亿的AI核心代码 (STL:各种string)
L1-064 估值一亿的AI核心代码 (20 分)分析:问题极为复杂就划分为7个小问题,分别进行求解操作,过程中用到了string头文件中的erase,replace,find,rfind等多个函数,STL的使用可以较好简化代码。代码:#include <bits/stdc++.h>using namespace std;int main(){ int n;...原创 2019-03-31 13:27:38 · 2625 阅读 · 3 评论 -
PTA 6翻了 (STL string.replace)
L1-0586翻了(15分)“666”是一种网络用语,大概是表示某人很厉害、我们很佩服的意思。最近又衍生出另一个数字“9”,意思是“6翻了”,实在太厉害的意思。如果你以为这就是厉害的最高境界,那就错啦 —— 目前的最高境界是数字“27”,因为这是 3 个 “9”!本题就请你编写程序,将那些过时的、只会用一连串“6666……6”表达仰慕的句子,翻译成最新的高级表达。输入格式:...原创 2019-03-31 11:25:06 · 2215 阅读 · 1 评论 -
PTA 秀恩爱分得快 (二维vector)
L2-028 秀恩爱分得快 (25 分)分析:本题有一万个坑:坑一:序号0用可能为女,即-0,这时整形读取是没有区别的,要用getchar()来读,用一个函数来读取较为方便。坑二:存储照片上的人要把男女分开,才可以满足时间要求,就只计算异性性间的亲密度。坑三:在判断是否彼此为最亲近的人时,考虑两方最大亲密值相同,但不是对方的情况。代码:#include <bit...原创 2019-03-26 18:52:30 · 1461 阅读 · 2 评论 -
Codevs 单词接龙 (DFS,substr)
单词接龙分析:深搜和substr()函数的使用。由于相连接的单词只会是一个连一个,不可能出现一个单词隔着连两个(这样中间那个就没用了),所以不需要储存连接好的“龙”,只需知道任意两个单词之间能否相连,最少几个字母相连,只后就可以用DFS来搜索最长“龙”。虽然理论上是会超时的,但数据较水,从题目中n<=20也就应该联想到可以通过遍历来暴力求解(话说好像也确实没有什么巧妙的方法)。代码...原创 2019-03-18 18:30:05 · 173 阅读 · 0 评论 -
PTA 功夫传人 (DFS)
L2-020 功夫传人 (25 分)分析:用堆栈来储存徒弟的序号,从而实现搜索。代码:#include &lt;bits/stdc++.h&gt;using namespace std;vector &lt;int&gt; v[100007];double sum = 0, de;int arr[100007] = { 0 };void dfs(int a, double s...原创 2019-03-17 19:47:56 · 1033 阅读 · 1 评论 -
PTA 列车调度 (函数使用,upper_bound)
L2-014 列车调度 (25 分)分析:一开始是用循环来寻找插入位置,时间为O(n*n),结果是超时的,所以改用了upper_bound(lower_bound)函数,用二分法快速查找。除此之外,通过升序储存各轨道最小值,也可以较好地简化代码。代码:#include <bits/stdc++.h>using namespace std;int main(){ int...原创 2019-03-17 19:45:05 · 353 阅读 · 0 评论 -
PTA 小字辈 (DFS,vector)
L2-026 小字辈 (25 分)分析:开始以为是类似并查集的从下向上搜索,但是这样会重复搜索很多数据,时间超时。所以正确解法是从上到下深度搜索,vector容器的引人非常关键,用空间资源简化了时间资源。代码:#include <bits/stdc++.h>using namespace std;int generation[100010], m...原创 2019-03-21 11:50:14 · 1010 阅读 · 0 评论 -
PTA 悄悄关注 (函数使用,map,set)
L2-019 悄悄关注 (25 分)分析:set函数加map函数,更快速地进行查找。代码:#include &lt;bits/stdc++.h&gt;using namespace std;int main(){ map &lt;string, int&gt; m; set &lt;string&gt; s; pair &lt;string, int&gt; p原创 2019-03-17 19:45:36 · 604 阅读 · 0 评论 -
PTA 点赞狂魔 (函数使用,sort,set)
L2-021 点赞狂魔 (25 分)分析:通过sort函数和set函数的使用,大幅度简化算法。代码:#include &lt;bits/stdc++.h&gt;using namespace std;typedef struct Stu{ int goo1; int goo2; string name;};bool cmp(Stu a, Stu b){ if (a....原创 2019-03-15 18:59:59 · 718 阅读 · 0 评论