题解
Layne...
遇事不决,可问春风
展开
-
两数之和/三数之和(排序+双指针)
两数之和解法一:暴力枚举【时间复杂度O(N^2), 空间复杂度O(1)】解法二:排序+双指针【时间复杂度O(NlogN),空间复杂度O(N)】class Solution { public int[] twoSum(int[] nums, int target) { Data[] list = new Data[nums.length]; for (int i = 0; i < nums.length; i++) { list原创 2021-09-09 23:53:26 · 292 阅读 · 0 评论 -
Clairewd’s message(字符串哈希)
字符串hash是指将一个字符串s映射为一个整数,使得该整数可以尽可能唯一地代表字符串s。自然溢出法减少hash冲突:这种方法是利用unsigned long long的范围自然溢出:即当存储的数据大于unsigned long long的存储范围时,会自动mod 264−1,就不用mod其他质数来保证唯一性了。字符串哈希模板typedef unsigned long long ull;//...原创 2020-03-10 23:44:15 · 370 阅读 · 0 评论 -
试题C:乘积尾零 / 试题G:冷门进制 (思维)
试题C:乘积尾零给出以下数据(10行每行10个),求出它们的乘积末尾有多少个0?5650 4542 3554 473 946 4114 3871 9073 90 43292758 7949 6113 5659 5245 7432 3051 4434 6704 35949937 1173 6866 3397 4759 7557 3070 2287 1453 98991486 5722 31...原创 2020-03-08 16:29:04 · 259 阅读 · 0 评论 -
切香肠(二分答案+贪心)
当初没想到二分,单纯暴力,结果tle。。。题解题目说1单位长度可分为100份,所以我们可以去放大100倍(乘以100),将小数转为整数去做,可避免精度误差的问题,当然直接小数去做也是可以的。接下来就在一个区间里面二分寻找最大的答案即可。Code①转化为整数去二分#include<bits/stdc++.h>using namespace std;typedef long...原创 2020-03-08 15:07:19 · 1019 阅读 · 1 评论 -
2019牛客多校第十场B.Coffee Chicken(递归)
题目传送门题意第1个字符串为"COFFEE",第2个字符串为"CHICKEN",第n个字符串由其前2个和前1个连接而成(即s[n]=s[n-2]+s[n-1],注意s[n-2]在s[n-1]的前面),询问第n个字符串从第k个字符开始的连续10个字符是什么(如果还未有10个字符但到达字符串末尾时要停止)1≤n≤5001≤k≤min{∣S(n)∣,1012}. (|S| den...原创 2019-08-26 19:18:00 · 175 阅读 · 0 评论 -
2019牛客多校训练第七场A. String(暴力)
题目传送门题意输入整数T表示有T个测试用例,然后• 给一个01构成的字符串,要把该字符串切分成最少的份数,使得每一个字符串都是循环移位字典序最小的字符串。(例如0110就不满足字典序最小,因为循环移位可得0011) • 111011110 -> 111 01111 0题解每次暴力枚举最少的字符串,暴力判断是否符合条件即可。Code#incl...原创 2019-08-26 19:17:00 · 249 阅读 · 0 评论 -
2019牛客多校训练第八场G.Gemstones(栈模拟)
题目传送门题意:输入一段字符串,字符串中连续的三个相同的字符可以消去,消去后剩下的左右两段字符串拼接,求最多可消去次数。输入:ATCCCTTG 输出:2ATCCCTTG(消去CCC)——>ATTTG(消去TTT)——>AG 题解:签到题,用栈模拟即可。Code:用栈模拟: /*7ms*/ 1 #include<bit...原创 2019-08-10 20:50:00 · 194 阅读 · 0 评论 -
2019上海icpc网络赛B. Light bulbs(思维+差分)
题目传送门题意T组案例,每组案例:n个灯泡(from0to n-1),m次操作,每次操作把区间[L,R]内的灯泡翻转(开变关,关变开),问m次操作之后有多少灯泡是亮着的。(时间限制:1000ms 内存限制:8192K)题解这道题不仅卡时间,更是卡内存,所以用线段树会爆内存正解:该题可以转换为经典的差分问题:每次操作对[L,R]的所有数进行+1操作,求最后...原创 2019-09-17 23:43:00 · 195 阅读 · 0 评论 -
2019牛客多校训练第八场C.CDMA(思维+构造)
题目传送门题意:输入整数m( m∈2k∣k=1,2,⋯,10),构造一个由1和-1组成的m×m矩阵,要求对于任意两个不同的行的内积为0。题解:Code: 1 #include<bits/stdc++.h> 2 using namespace std; 3 const int M=(1<<10)+5; 4 int...原创 2019-08-11 16:47:00 · 182 阅读 · 0 评论 -
2019牛客多校训练第四场K.number(思维)
题目传送门题意:输入一个只包含数字的字符串,求出是300的倍数的子串的个数(不同位置的0、00、000等都算,并考虑前导零的情况)。sample input:600123000321013200987000789sample output:455题解:O(n)做法:遍历一遍,求前缀和sum取余3,统计sum的个数num[sum],遇到本位和下一位都...原创 2019-08-04 18:08:00 · 198 阅读 · 0 评论 -
2019牛客多校训练第三场B.Crazy Binary String(思维+前缀和)
题目传送门大致题意:输入整数n(1<=n<=100000),再输入由n个0或1组成的字符串,求该字符串中满足1和0个数相等的最长子串、子序列。sample input:801001001sample output:4 6题解:补充一下子串和子序列的区别:字串必须连续,子序列不必连续。求01个数相等的最长子序列长度:min(0的个数,1的个数...原创 2019-07-29 23:23:00 · 142 阅读 · 0 评论 -
2019牛客多校训练第三场H.Magic Line(思维)
题目传送门大致题意:输入测试用例个数T,输入点的个数n(n为偶数),再分别输入n个不同的点的坐标,要求输出四个整数x1,y1,x2,y2,表示有一条经过点(x1,y1),(x2,y2)的直线将该二维平面内的点分成点数相等的两部分。(这条线不能通过平面内任何一点)sample input:140 1-1 01 00 -1sample output:(special j...原创 2019-07-29 23:28:00 · 179 阅读 · 0 评论 -
2019牛客多校训练第八场B.Beauty Values( 思维 / (简单dp) )
题目传送门题意输入整数n,再输入n个整数a1,a2,⋯ ,an,表示一段序列,求序列的所有子区间里面不同数字之和。说明:在序列1 2 1 3中, 区间[1,1],[2,2],[3,3],[4,4]各含1个不同数字 区间[1,2],[1,3],[2,3],[3,4]各含2个不同数字 区间[1,4],[2,4]各含3个不同数字故总和为:1×4+2...原创 2019-08-11 19:30:00 · 159 阅读 · 0 评论 -
Codeforces Round #574 (Div. 2)——C. Basketball Exercise(简单DP)
题目传送门简单的dp题,考虑选与不选两种状态#include<bits/stdc++.h>typedef long long ll;using namespace std;ll n,a[100005],b[100005],dp[2][100005];int main(){ ios::sync_with_stdio(false); while(!(cin&g...原创 2019-07-19 00:49:48 · 392 阅读 · 0 评论 -
2019牛客多校第一场J题——Fraction Comparision(大数)
题目传送门大致题意:依次输入x,a,y,b,比较x/a和y/b的大小,前者大则输出“>”,后者大则输出“<”,相等则输出“=”。0<=x,y<=10^181<=a,b<=10^9解法一(正解):解法二:C/C++高精度大数乘法#include<stdio.h>#include<iostream>#include<c...原创 2019-07-19 00:10:19 · 459 阅读 · 0 评论 -
max(与公约数相关的变形题)
题目:DescriptionGive two positive integer c, n. You need to find a pair of integer (a, b) satisfy 1 ≤ a, b ≤ n and the greatest common division of a and b is c.And you need to maximize the product of...原创 2019-07-16 15:55:58 · 266 阅读 · 0 评论 -
三七互娱杯题解
https://www.zybuluo.com/yang12138/note/1458963原创 2019-04-27 22:43:48 · 184 阅读 · 0 评论 -
CSL 的字符串(用栈模拟)——“新智认知”杯上海高校程序设计竞赛暨第十七届上海大学程序设计春季联赛
CSL 的字符串记录每个字母出现的次数,每次更新每次查询0.0#include <bits/stdc++.h>using namespace std;#define ll long long#define re register#define fi first#define se second#define mp make_pair#define pb push_ba...原创 2019-04-24 14:14:12 · 262 阅读 · 0 评论 -
最大间隙(线性时间算法——鸽笼原理)
题目描述:给定n个实数 x1 , x2 , … , xn ,求这n个数在实轴上相邻2个数之间的最大差值。假设对任何实数的下取整方法耗时O(1),设计解最大间隙问题的线性时间算法。对于给定的n个实数 x1 , x2 , … , xn ,计算它们的最大间隙。Input输入数据的第一行有1个正整数n ( 1 < n ≤ 200000 )。接下来的1行是n个实数 x1 , x2 , … , ...原创 2019-04-29 13:39:23 · 3380 阅读 · 5 评论 -
Easy Function题解——大数的大小比较(log函数取对数)
InputInput contains multiple test cases. One line one case, and each case is three integers, a, b, c. We guarantee that 1 ≤ a, b, c ≤ 20000.(题意:比较a!和b^c的大小,相等则输出0,后者大则输出-1,前者大则输出1)OutputFor each ca...原创 2019-04-12 22:51:51 · 3487 阅读 · 0 评论 -
小花梨的取石子游戏(博弈思维题)——“美登杯”上海市高校大学生程序设计邀请赛 (华东理工大学)
题目链接:(https://acm.ecnu.edu.cn/contest/173/problem题解:如果最左边的石子数目为1,那么只能拿1个石子,那么它的必胜必败态就和下一个位置的必胜必败态相反。如果最左边的石子数目大于1,那么可以全部拿掉,可以拿得只剩下1个,这两种状态一定存在一个必败态,所以它是必胜态。#include<cstdio>using namespace s...原创 2019-05-20 00:15:36 · 185 阅读 · 0 评论 -
堆禾草
大致题意:Time Limit: 1000/500 MS (Java/Others)一开始有N ( 1 ≤ N ≤ 1000000, N 是奇数 )个空草堆,分别编号为1,2,…,N。现有K个指令,指令的格式是"A B",表示从编号A到编号B都分别叠加上一堆干禾草,例如,接到指令"10 13",那么就为草堆10、11、12、13各叠加上一捆禾草。当根据指令完成工作后,计算N堆草的高度的中位数。...原创 2019-05-13 14:00:13 · 289 阅读 · 0 评论 -
韩信点兵(中国剩余定理)
Description(Time Limit: 400/100 MS (Java/Others))韩信带兵出战,带了1亿大军,战死了一部分人,活着的士兵站ai人一排就会多出bi人,现在给出所有的ai和bi,问最少还有多少士兵存活着?Input多测试用例,每个测试用例的的第一行:n,接下来有n行,每行包括两个数ai和bin ≤ 20 , 1 < ai ≤ 1000 , 0 ≤...原创 2019-05-12 10:59:39 · 971 阅读 · 0 评论 -
Farey Sums(欧拉函数)
/*#include<bits/stdc++.h>using namespace std;struct node{ long long a,b;}qq[100000000];int cmp(node s1,node s2){ return s1.a*s2.b<s1.b*s2.a;//从小到大排序}int main(){ int p,k,x...原创 2019-07-13 15:37:40 · 376 阅读 · 0 评论 -
说能过那是假的(一道让优化时间复杂度的简单字符串题)——吉首大学2019年程序设计竞赛(重现赛)
题目链接:(https://ac.nowcoder.com/acm/contest/992/G)题目:说能过那是假的时间限制:C/C++ 1秒,其他语言2秒这道题你只需要呆萌呆萌的把下面的代码交上去就行了,我书读的多,不会骗你的,我发4。 #include<stdio.h> #include<string.h> int main() { ...原创 2019-07-14 14:08:12 · 322 阅读 · 0 评论 -
Blink(string类+模拟+找循环节)
题目描述:吊灯由N(3 <= N <= 16)个灯组成,并排成一个圆圈。在时间T时,他们会操作在时间T-1时左边的灯是开着的灯的灯泡的开关。他们会在B个单位的时间里一直进行这样的操作( 1 <= B <= 10^15 )请注意,B可能会超过一般的32位整数的范围。现在已知每一个灯的初始状态,请计算出在经过B个单位的时间后,每一个灯的状态输入格式:第1行是两个整...原创 2019-07-12 09:50:25 · 222 阅读 · 0 评论 -
六学家的困惑(队列+string+reverse函数)——2019年华南理工大学程序设计竞赛(春季赛)
2019年华南理工大学程序设计竞赛(春季赛)题目链接:六学家的困惑(贪心题)题意:给出两个数字字符串,每次选择其中一个字符串,然后从最左端或者最右端取出一个数字字符,组成一个新的数字字符串,输出最大的数字字符串。注意:当两端相同的情况时要往里走,选择往里的一位较大的那端。输入:2123456 1234569876346789 9854894589输出:Case #1: 6655...原创 2019-04-15 00:15:37 · 172 阅读 · 0 评论