思维
思维
Authur_gyc
这个作者很懒,什么都没留下…
展开
-
仅由01构成的串中,最长01数目相等的子串
有一个仅由0和1组成的01串,找到其中最长的一段子串,使得该子串中0和1的数目相等。面试时将0改成-1,然后用前缀和,二分枚举长度然后检验,这里二分枚举错了,不满足二分的性质。正确思路是,在前缀和的基础上,找前缀和相等的 i 和 j 并且 |i - j| 尽可能大。这里用哈希存一下每个前缀和的最小 id ,然后O(n)跑一下取最大距离即可。#include <bits/stdc++.h>using namespace std;const int maxn = 1e5 + 10;in原创 2021-04-12 17:02:10 · 1431 阅读 · 0 评论 -
Educational Codeforce Round 94 (Div. 2) D. Zigzags (思维+枚举+统计)
题目题目链接思路它是枚举k,然后统计一下k后面的数字出现的次数sum[]接着从k-1的位置往前枚举,枚举的是 i如果i和k一样,那就上cnt这里cnt的含义是i和k中间夹着的配对个数往前枚举时,不论一不一样,cnt都加上sum[第二个指针(往前移动的)枚举的数字]代码#include <bits/stdc++.h>using namespace std;typedef long long ll;const int maxn = 3e3 + 10;int a[maxn];原创 2020-08-30 08:06:56 · 189 阅读 · 0 评论 -
CF Round #658 (Div. 2) C2. Prefix Flip (Hard Version)
题目题目链接思路2n的操作是,对b数组从后往前遍历,如果当前位置与a匹配,继续下一个,如果不匹配,看a第一个元素是否匹配,如果不相同,直接对当前位置的前缀做操作,如果相同,则对a的第一个元素做一次操作,然后再对当前位置的前缀做操作。这样能保证在2n内完成。不过t<=1e3 n <=1e5,对执行操作的区间进行线性更新会TLE。所以找一个更快的维护方式。记录当前区间L R,flag标记当前方向是正还是反。从后往前跑一遍b数组,不断更新L R,记录信息即可。这里代码写麻烦了,实际可以原创 2020-07-29 17:08:08 · 170 阅读 · 0 评论 -
2020 杭电多校一 1005 Distinct Sub-palindromes(数论 推导)
代码#include <iostream>#include <bits/stdc++.h>using namespace std;typedef long long ll;const int maxn = 1e5 + 5;const ll mod = 1e9 + 9;ll fac[maxn], a[maxn], b[maxn];void init(){ a[0] = b[0] = fac[0] = 1; for(int i = 1; i < ma原创 2020-07-24 11:08:50 · 193 阅读 · 0 评论 -
2020 杭电多校二 1006(思维 取模)
题目题目链接思路看到等式可以想想取模。找一个 f[i] 取模后的值都是不一样的模数(2e64是可以的),也可以找多个模数。判断一下 fk 是否与 f[i] 相等即可。截图为出题人的题解。代码#include <bits/stdc++.h>using namespace std;typedef long long ll;const int maxn = 2e6 + 10;unsigned long long f[maxn];void init() { f[0] = f原创 2020-07-24 10:35:24 · 229 阅读 · 0 评论 -
Minimax Gym - 101972G (思维+维护子矩阵的最值)
题目Minimax Gym - 101972G题意给你一个矩阵,然后一种操作,选择一个非边界点,去掉该点所在的列和行,肯定会剩下四部分,求这四部分中的最大值的最大值减去最大值的最小值,使得这个差最小。思路维护四个角的最大值矩阵,然后枚举删除的行和列的交点,直接计算取最小值就好。注意,用cin cout太慢,会TLE代码#include <bits/stdc++.h>u...原创 2020-02-07 17:17:21 · 220 阅读 · 0 评论 -
[codeforces1203F1]Complete the Projects (easy version) (贪心)
题目[codeforces1203F1]Complete the Projects (easy version)题意有一些任务要做,做任务有前提,就是你的rating要大于等于这个任务要求的rating,而做了这个任务后,你的rating会变化bi,bi可正可负。问能否完成给定的所有任务呢?思路分两种情况讨论,一种是bi大于等于0的,对于这种我们优先完成ai小的,也就是优先完成ratin...原创 2020-02-07 16:59:30 · 186 阅读 · 0 评论 -
2020牛客寒假算法基础集训营2 题解
知识点:枚举,贪心,DP,数论,思维,数据结构,哈希A题 做游戏水题#include <bits/stdc++.h>using namespace std;typedef long long ll;const int maxn = 1e7 + 5; int main(){ ll a, b, c; ll x, y, z; cin >>...原创 2020-02-07 12:44:03 · 430 阅读 · 0 评论 -
CodeForces 767 D.Cartons of milk(贪心)
题意一个人一天要喝k瓶牛奶,如果冰箱里的牛奶不够k瓶就全部喝完,目前冰箱里有n瓶牛奶,给出每瓶牛奶的保质期,即还有几天会过期,过期的牛奶会被扔掉。再给出商店中m瓶牛奶的保质期,问是否存在一种方案使得这个人不扔掉任何一瓶牛奶,如果有,他最多可以从商店买多少瓶牛奶。如果没有输出-1思路对于每一天,都是只能最多和k瓶牛奶,a[i]表示 过了第 i 天后 会过期的牛奶数。我们从第1e7 跑到 0 ...原创 2020-02-05 19:17:18 · 137 阅读 · 0 评论 -
[CodeForces 777C] Alyona and Spreadsheet (思维 + 优化)
题意给你一个nm的矩阵(nm <= 1e5),然后给你q次询问,每次询问会给你两个数字 L 和 R ,问你在第L行到第R行中(无视其他未被选中的行的数据),是否存在一列是单调不减的。思路显然暴力会TLE要问的是行区间L到R是否存在一列单调不减,意味着有L行有一列,它能单调不减的延伸到至少R行,那么我们如果能够获得这样一个数列c[i],c[i]表示第i行能够延伸的最长的长度,那么对于每...原创 2020-02-03 09:16:14 · 378 阅读 · 0 评论 -
Codeforces 777D Cloud of Hashtags(思维 + 暴力)
题意<=5e5个字符串,要你不改变他们的次序,删除最少个字符,使得它们符合题目中定义的从上往下的字典序。输出删除后的字符串思路从下往上看,比较相邻的字符串 i - 1 与字符串 i ,如果 i - 1 的字典序大于 i 的,那么不合法,这时候把字符串 i - 1 后面大于 i 的那一段删除掉,这样能够保证删除的字符的个数尽可能少。(有传递性)代码#include <bits...原创 2020-02-02 17:37:39 · 312 阅读 · 0 评论 -
E. Obtain a Permutation(思维)
题目https://codeforces.com/contest/1294/problem/E题意一个矩阵,有一个原始的次序。现在给你一个打乱的矩阵,要你用最少的操作次数复原。你有两种操作:1、把某个数字直接变成任意一个数字2、把某一列整体向上移动一格(循环移动)思路首先我们知道,每一列之间不互相影响,也就是说,我们可以一列一列解决问题,得到答案。对于当前列,我们希望得到把这一...原创 2020-02-01 17:43:22 · 228 阅读 · 3 评论 -
Codeforces 1294C - Product of Three Numbers (思维)
题意给你一个数字 n <= 1e9要你找到三个不同的数字 a , b , c 使得a * b* c == n存在则输出YES 和 a b c如果不存在,输出NO思路首先我们知道这个数字n,我们能够在O(n12n^\frac{1}{2}n21)的时间复杂度内算出n的所有因子。因为是三个数字相乘,所以答案中的三个数字,必定不可能有两个数字同时大于n12n^\frac{1}{2...原创 2020-01-31 15:35:53 · 349 阅读 · 0 评论 -
Codeforces Round #469 (Div. 2) D题 A Leapfrog in the Array (思维)
题目样例题意一个长度为2*n的数组,奇数位上依次是1 2 3 4 5 6……,也就是每放一个数字空一个格子,然后每次操作我们都会把最右边的一个数字,放到最右边的一个被两个数字夹着的空格,直到没有被夹着的空格存在为止。然后问你,停止后,数组上pos位置的数字是多少。思路2*n长度的数组,n个数字,最后停下来,肯定是前n的空格被占用,后n个不被占用。① 对于这前n个数字,我们知道如果p...原创 2020-01-17 23:07:48 · 116 阅读 · 0 评论 -
codeforce Zebras(思维 + 模拟)
题目链接http://codeforces.com/group/5yyKg9gx7m/contest/265809/problem/C题面C. Zebrastime limit per test1 secondmemory limit per test512 megabytesinputstandard inputoutputstandard outputOleg writes d...原创 2020-01-16 23:38:26 · 281 阅读 · 0 评论 -
2019广工ACM新生赛决赛 L题(思维)
题意给木条个数和长度和重量,问叠起来最远离悬崖边缘多远思路思维水题,根据重心推一下即可发现,第一段露出来的是L2\frac{L}{2}2L,第二段露出来的是L4\frac{L}{4}4L,第三段露出来的是L6\frac{L}{6}6L,第四段露出来的是L8\frac{L}{8}8L,根据性质,后面的也必然为L10\frac{L}{10}10L,故累加一下就可以了。看了推导过程就...原创 2019-12-08 09:16:29 · 305 阅读 · 1 评论 -
LPOJ 广外2019新生赛 G题 沙雕(计算、化简)
题目曾大仙非常擅长数学,同时也非常擅长做沙雕,所谓沙雕就是用沙子做成的雕像,某天他决定要在广外建一个沙雕广场,他需要把一个大小为wh的沙雕放在大小为nm的广场中,不过在放沙雕之前,需要现在广场上建一个雕像的底座,底座要求严格包含雕像,即假设底座大小为x*y,则 w+2<=x<=n,h+2<=y<=m。(雕像,广场和底座均由单位1组成,详见提示)问:现在有多少种满足条件...原创 2019-11-24 11:42:27 · 919 阅读 · 0 评论 -
LPOJ 广外2019新生赛 E题 ka ge bu n shi n no jyu tsu(思维)
题目Hongrock为了打败宿敌潘萌萌学会了分身术,但Hongrock学的分身术只学了半桶水,并不能像漩涡鸣人一样分出和本体相同的能力的分身,他只能将自己的查克拉分摊到其他分身上,即所有分身的查克拉之和等于原本拥有的查克拉。但毫无疑问,这弱爆了。Hongrock为了充分运用自己学回来的新技能,他又找了仙人学会了Hongrock连弹,这是一个组合技,可以用自己的分身之间的配合,组合出毁天灭地的招式...原创 2019-11-24 11:21:11 · 329 阅读 · 0 评论 -
The ICPC 2018 Asia Hanoi Regional Contest J题 Jurassic Jungle
https://vjudge.net/contest/320464The ICPC 2018 Asia Hanoi Regional Contest J题 Jurassic Jungle思路三种情况第一种,所有的点连成一个环。第二种,完全图。第三种,每个奇数序号的点与每个偶数序号的点相连。代码#include <stdio.h>#include <stdlib...原创 2019-11-08 10:28:37 · 243 阅读 · 0 评论 -
Gym - 102411 J题 Just the Last Digit
Gym - 102411J思路把间接到的路给减去,剩下的值(0或者1)就意味着是不是直接相连。例如,我们不知道2和3是否相连,那么我把2通过3到达4,以及2通过3到达5的路径数目给减了,那么剩下的就是2能否直达3。代码#include <stdio.h>#include <stdlib.h>#include <string.h>#include ...原创 2019-11-07 18:41:21 · 636 阅读 · 0 评论 -
HDU - 6546 (贪心)
思路一开始大家都不会做,以为是个数学题。看了好一会,我说,考虑用贪心的做法,先把 m 的值都分配给二次函数的最低点(的横坐标),然后剩下的值用来移动,移动的依据按照移动后的权值变化来选择。(现在看来,我那时候的思路是对的,不过在算复杂度的时候算错了,为什么算错,因为那时候是这样想的:每次更新,都要算出每个点移动一格的权值变化,那么总的时间复杂度是O(mn),觉得不可取放弃了。)然后另一个队友...原创 2019-10-15 17:33:42 · 139 阅读 · 0 评论 -
CF Round 580 div.2 C题Almost Equal(思维)
思路找到性质即可做出。当n为偶数个时无法构成。当n为奇数个时可以构成。第一个数字我们设为1,那么第n+1个数字必定为2。从区间[1,n]转变到区间[2, n+1],和会加1。所以从区间[2,n+1]到区间[3,n+2]必定要求和会减1。根据这个性质(加1减1不断交替),构造答案即可代码#include <bits/stdc++.h>using namespace s...原创 2019-08-18 23:58:14 · 154 阅读 · 0 评论 -
组队赛11:2018黑龙江省赛H题/HDU - 6487 Overflow (思维+后缀和+计算)
#include <cstdlib>#include <cstdio> #include <cstring>#include <cmath>#include <algorithm> using namespace std;typedef long long ll;const int maxn=1e4+5;double L[...原创 2019-05-08 23:41:25 · 564 阅读 · 0 评论 -
2019广工ACM校赛决赛A题:思维题 HDU 6461 zsl 和hzy的生存挑战
题目描述zsl 和hzy 来到了臭臭城堡,打算挑战臭臭城堡的大魔王hyz,大魔王hyz设置了这样的一个挑战:zsl 和hzy两个人各自来到一间密室,期间两人无法以任何形式交流大魔王hyz会随机在两个人的脑海里各发送一个数字,0或者是1zsl 和 hzy 需要猜对这俩个数字才算通关,但是大魔王hyz觉得人生不能过于无敌,因此降低难度,只要两个人中有一个人答对就算是通关现在大魔王hyz ...原创 2019-03-16 23:46:02 · 1326 阅读 · 0 评论 -
排位赛三: 思维题 Lemonade Line(USACO18OPEN)
Lemonade Line(USACO18OPEN)题意牛口渴了,要来和水,排队的时候,每头牛都有心理的最大忍耐度,前面的人数要是多于这个值,它就会忍不了,然后就走牛了。问这条队最短能排多长。思路牛分为忍耐度高的和忍耐度低的,要尽可能让队伍短,那么就尽可能的让忍耐度高的在前面占位置,让忍耐度低的在后面气的走人。所以读完数据后按忍耐度由大到小排序,然后遍历位置和它们的忍耐度的关系,一直遍历...原创 2019-03-16 22:22:42 · 216 阅读 · 0 评论 -
排位赛二:思维/深搜题 (USACO 2018 February Contest, Bronze Hoofball)
USACO 2018 February Contest, Bronze Hoofballhttp://exam.upc.edu.cn/problemset.php?search=20185934: Hoofball时间限制: 1 Sec 内存限制: 128 MB题目描述In preparation for the upcoming hoofball tournament, Farmer...原创 2019-03-15 20:51:41 · 318 阅读 · 0 评论 -
排位赛三:思维题 Out of Sorts (from USACO)
洛谷链接:https://www.luogu.org/problemnew/show/P4375题目大意给你一个冒泡排序的代码,每次进入外层循环都会输出一句话,问排序后,这句话一共输出的次数。思路这道题考察对冒泡排序的理解。我们把原先的序列进行排序,排到有序的状态。这个时候,我们看那些数字是往前动了还是往后移动了。如果一个数字原先所在的位置在排序完成的位置的前面,那么称这个数字为偏前的...原创 2019-03-15 20:18:18 · 216 阅读 · 0 评论