思维
破而后立呀
这个作者很懒,什么都没留下…
展开
-
2021年ECNU计科考研复试机试 D. Weights II(背包)
m大题面https://www.malic.xyz/archives/3117/4牛客网题面https://ac.nowcoder.com/acm/problem/13586其实和2021蓝桥杯的G题一样,也和牛客上的一个题几乎一样,我都傻了,当时如果提前研究明白,我直接跑到前几名去了。吐槽一下蓝桥杯,就这出题水平??直接搬过来原题,还好意思收300???主要就是01背包思想,对于每个询问O(1)回答就好。但是对于机试来说,感觉数据范围有点大啊,不知道能不能过。。。注意一下偏移量这种..原创 2021-07-14 17:22:12 · 643 阅读 · 2 评论 -
malic-2021年寒假热身-05 D - 楼高莫近危阑倚(DFS+树状数组)
记录入度,从而找到树的根结点,从根结点进行DFS,在向叶子结点搜索的时候将当前结点值加入树状数组,在回溯的时候再减去,这样每个子树就不会互相影响。。#include <iostream>#include <cmath>#include <set>#include <algorithm>#include <cstring>#include <cctype>#include <queue>#include .原创 2021-03-21 19:13:36 · 115 阅读 · 0 评论 -
ABC 170 E - Smart Infants(STL 模拟)
每个元素都属于一个集合,q次操作,每次都把一个元素从它目前所在的集合删除,然后放到另一个集合里面,每次操作之后问所有集合的最大值中的最小值是多少。用multiset模拟,注意对每一个小集合删除、添加之后,对维护答案的集合应该如何处理。#include <iostream>#include <cmath>#include <set>#include <algorithm>#include <cstring>#include .原创 2021-03-18 20:17:09 · 253 阅读 · 0 评论 -
2020江西省赛 E.Color Sequence(异或前缀和)
利用异或前缀和,如果两个前缀的异或值相同,那么中间这一段连续的序列就满足条件,用map记录一下前缀和出现的次数,具体计数方法见代码。颜色只有20中,一个int型就可以记录所有状态。#include <iostream>#include <cmath>#include <map>#include <set>#include <algorithm>#include <cstring>#include <ccty.原创 2021-02-20 19:24:36 · 427 阅读 · 4 评论 -
atcoder 185 F - Range Xor Query
异或具有可前缀性,所以就是树状数组前缀和改成前缀异或#include <iostream>#include <cmath>#include <set>#include <algorithm>#include <cstring>#include <cctype>#include <queue>#include <vector>using namespace std;#define IO原创 2021-07-14 17:23:58 · 178 阅读 · 0 评论 -
Codeforces - 741C.Arpa’s overnight party and Mehrdad’s silent entering(二分图构造)
如果能想到一定有解,并且构造出二分图就好做了,情侣之间连边,并且相邻两人连边(这样就满足了相邻三人之间至少两种食物),之后跑一下BFS染色把方案构造出来。#include <bits/stdc++.h>using namespace std;const int maxn = 2e5 + 10;int n;vector<int> g[maxn];int x[maxn], y[maxn];int col[maxn];void BFS(int s){ queu原创 2021-07-15 08:16:16 · 239 阅读 · 0 评论 -
2020ICPC江西省赛 H.Sequence(线段树单点修改+查询)
题目大概意思:给定一个x做为下标,查询a[x]在多少个连续区间内是最小值,还有单点修改。比较容易想到运用线段树进行单点修改和查询,但是查询的时候要分别往x左边和右边查询,查询的目的是找到x左边第一个小于a[x]且最靠右的数组下标位置,同理右边找最靠左的第一个小于a[x]的下标,左边查询的时候优先查询右边,右边查询的时候优先查询左边,这样才能保证最佳,魔改线段树(其实也算不上魔改吧)细节挺多的,自己没调出来,请xyx大佬调的,还是码力太弱了。。。对于找不到小于a【x】这种情况要特殊处理一下。原创 2020-11-29 22:01:36 · 287 阅读 · 0 评论 -
The 2019 ICPC Asia Shanghai Regional Contest B.Prefix Code
比较容易想到用字典树,首先按照长度从大到小对字符串进行排序,每插入一个字符串,都对这个字符串路径上的所有结点上的val加1,然后倒序(从长度小的开始,因为长度小的更容易成为别的字符串的前缀)查询如果当前字符串的最后一个结点对应的val>1就说明,有另一个字符串至少可以到达当前结点,那么说明当前字符串是其他字符串的一个前缀。值得一提的是,这道题目如果不删除结点的话,会爆内存!!和poj2001很相似// #pragma GCC optimize(2)// #include <ran原创 2020-11-29 21:50:21 · 726 阅读 · 0 评论 -
Atcoder ABC184 F - Programming Contest(折半搜索+二分)
这道题目可以说是校赛C题的加强版,校赛C题给的数据范围是20,直接二进制枚举就可以(二进制枚举的时间复杂度是O(2^n))原创 2021-07-15 08:16:35 · 479 阅读 · 0 评论 -
Hdu 2925(约瑟夫环数学解法)
约瑟夫问题,输出最后一个出圈的人,模拟T飞,需要用数学方法解决。解析在此:https://zhuanlan.zhihu.com/p/121159246// #pragma GCC optimize(2)#include <iostream>#include <cstdio>#include <algorithm>#include <queue>#include <cmath>#include <string>#i原创 2021-07-16 12:17:22 · 149 阅读 · 0 评论 -
蓝桥杯 日期计算(模拟+坑多)
考虑闰年,考虑年份,月份是否在范围内,考虑去重acwing传送门// #pragma GCC optimize(2)#include <iostream>#include <cstdio>#include <algorithm>#include <queue>#include <cmath>#include <string>#include <vector>#include <stack>原创 2021-07-18 19:53:14 · 194 阅读 · 0 评论 -
蓝桥杯 整数拼接(思维)
题解看这:https://blog.csdn.net/weixin_44775484/article/details/107442900 // #pragma GCC optimize(2) #include <iostream> #include <cstdio> #include <algorithm> #include <queue> #include <cmath> #include <string> #i.原创 2021-07-18 19:54:10 · 898 阅读 · 0 评论 -
蓝桥杯 乘积尾零
C++版本:对于每个数计算出可以最多分解成多少个2乘积,以及多少个5乘积,然后累计起来,最后输出2的个数和5的个数中的较小值,因为只有2*5会出现0.int c1=0,c2=0; for(int i=1;i<=10;i++) for(int j=1;j<=10;j++) { int x; int t=x; cin>>x; while(x%2==0) { c1++; x=x/2; } while(t%5=原创 2021-07-18 19:54:32 · 122 阅读 · 0 评论 -
Atcoder abc179 D - Leaping Tak(前缀和维护DP)
题意给定n和k个区间,每个区间都不想相交,在每一个位置(p)都可以从任意一个区间拿出一个属于这个区间的数(d)然后跳转到p+d位置,但是位置不能超过n。从1开始到达n有多少种方法。需要利用前缀和进行优化。#include <iostream>#include <cstdio>#include <algorithm>#include <queue>#include <cmath>#include <string&g.原创 2021-07-19 16:33:57 · 757 阅读 · 0 评论 -
F. Find my Family (dp预处理+set二分)
传送门题目意思:给定一个数列,找到任意三个数字 a[i],a[j],a[k],i<j<k && a[k]>a[i]>a[j]首先逆序预处理出每个数字并且包括这个数字右边最大的值。然后从左到右扫一遍,结合set进行二分查找出刚刚 比当前数字大的数,然后判断是否满足条件。#include <iostream>#include ...原创 2021-07-23 20:12:43 · 1141 阅读 · 0 评论 -
EOJ Monthly 2020.3 B. 与矩阵
到现在我还是很懵,不明白为什么代码这么写,这么简单就可以。。比赛的时候就看这题过的人这么多就有点离谱,贪心构造 不会写啊!#include <iostream>#include <malloc.h>#include <cstdio>#include <algorithm>#include <queue>#i...原创 2021-07-23 20:12:56 · 296 阅读 · 0 评论 -
蓝桥杯训练 日期计算
这道题做起来还是有些麻烦的,做了一个小时多点,码力不行呀。。。思路:首先输入a的年月日,b存储2011,11,11,交换两个日期变量,让日期a 存储较小的日期,日期b存储较大的。我们需要计算出两个日期之间相差多少天,我想的是计算 a日期所在年过去了多少天sum1,再计算b日期所在年还有多天没过sum2,最后用a的年份到b的年份的总天数-(sum1+sum2),得到两个日期差...原创 2021-07-25 22:08:01 · 1465 阅读 · 0 评论 -
PTA 集合相似度 去重+二分
不算难题,读懂就可以做。这题unique去重和lower_bound二分算是对这道题目一个比较好的运用,其实用set也可以做。自带去重了。 int n, m; int x, y; cin >> n; for (int i = 1; i <= n; i++) { cin >> m; nod...原创 2021-07-25 22:08:06 · 430 阅读 · 0 评论 -
PTA 最长对称子串
#include <iostream>#include <malloc.h>#include <cstdio>#include <algorithm>#include <cstring>using namespace std;const int maxn = 1000 + 10;int main(){#ifdef...原创 2021-07-25 22:08:11 · 367 阅读 · 0 评论 -
历届试题 对局匹配
这几天心态有点崩,不会的忒多了,翻翻学长们的博客,同时期的他们学的算法比我多,题量也是!而且我很多学的算法和数据结构都只是做过模板题。。。md下学期逃课吧,我爱ACM!万幸今天下午查机组考得还算可以hhhh,算是一件值得高兴的事呢。这个题呢,不好想,看了题解可以总结一下方法是贪心和转换对象。题目是说最多多少人同时在线&&都匹配不上,那么我们可以先求所有人都在线能最多匹配...原创 2021-07-25 22:08:20 · 455 阅读 · 0 评论 -
B. Infinite Prefixes(试过才知道,我是真不行)
因为喜欢,所以坚持本来也是觉得脑子不清晰,但是不然,就是想不到!CF题目都对一些基本知识考查得十分滴灵活。。。。。缕清思路:题意先给个字符串s,里面都是1或0,一个串的前缀,在题目中也给出了,字符串t的定义是无数个s拼接起来,现在给定n为字符串s长...原创 2021-07-25 22:08:24 · 3470 阅读 · 3 评论 -
Division and Union 贪心!
题意: 给定一堆线段,是否能把所有线段分成两组,满足在两组各任意选择一条线段,使这一对线段不存在交集。若存在则输出每一条线段所在的组号(1或2),若有多种答案,则输出任意一种,若不能分成两组,则输出-1有端点,肯定得排序,这部分思路没错,但是在确定能否分成两组的时候,需要确定当前组达到的右边界限,不能用当前线段右端点小与下一个线段的左端点来判断,因为当前线段的右端点并不一定是当前组的最...原创 2021-07-26 09:52:53 · 426 阅读 · 0 评论 -
个人训练11 问题 G: 野牛与狼
努力做好每一件事吧 想都是问题,做才是答案!题目描述位于欧洲中部的赫希费尔登狩猎保护区生活着许多动物,雄壮的野牛和凶狠的狼群之间保持着一种平衡,当野牛的数量和狼群一样多时,它们彼此互不侵犯相安无事,但只要狼的数量多于野牛狼群就会攻击牛群,而野牛...原创 2021-07-27 15:17:42 · 742 阅读 · 0 评论