合集-训练
ACM日常训练日记——7.31(牛客萌新第三场)
摘要:nowcoder训练 正则表达式 签到 #include<bits/stdc++.h> using namespace std; int main(){ long long n; long long ans=0; cin>>n; while(n--){ long long a,b,c,d; scan
ACM日常训练日记——7.29(单调栈,滑动窗口,线性dp)
摘要:Atcoder训练 Enough Array 高质量题,建议两个星期后重新去做,滑动窗口题,找连续子串的和大于k的数 我一开始就直接想前缀和去做,但是没有考虑清楚连续的关系,只要到一个状态满足大于它的状态全部都满足 然后关键的地方是每次找到以后,把最先进入的状态弹出,也就是说从1——k变成2——k的
ACM日常训练日记——7.26(线性dp+cf div2)
摘要:Atcoder训练 Powerful Discount Tickets 我们只需要动态维护使最大的值变小即可,这里我采用multiset去记录,有相同元素存在,也可以采用优先队列去维护 #include <bits/stdc++.h> using namespace std; using ll=lo
ACM日常训练日记——8.1(区间dp)
摘要:小训练 T219724 最大子段和 我本来以为很简单的一道题,用前缀和去找,但是我粗心了一个写错了后面重新写过了,但是,后面发现是一个类似于动态规划的算法题 Kadane 算法 专门求这种最大子段和问题,时间复杂度为O(n) Kadane算法(Kadane’s Algorithm)是一种用于解决最大
ACM日常训练日记——7.30(并查集)
摘要:nowcoder训练 (并查集专项) DongDong认亲戚 这道题关键在于怎么去把字符串存入并查集,我们只需要开一个unordered_map存每一个字符串的下标即可,再上模板 #include <bits/stdc++.h> using namespace std; const int maxn
ACM日常训练日记——7.23
摘要:Atcoder训练 Flipping Signs 思维 通过打表观察发现,当负数为偶数时可以全部转化为正,不为偶数时,会留下一个负数,我们取绝对值最小的即可。 #include <bits/stdc++.h> using namespace std; using ll=long long; ll c
ACM日常训练日记——7.24
摘要:Atcoder训练 Template Matching 暴力枚举,问题给出的nxn字符串数组有没有包含下面的mxm数组 #include <bits/stdc++.h> using namespace std; using ll =long long; int n,m; int main(){ in
ACM日常训练日记——7.25(背包dp,最长公共子序列)记忆化搜素+细节二分
摘要:Atcoder训练 Harlequin 思维题博弈论,思考每一次怎么转化最优,存在两个答案说明f可以赢,打表发现当所有数字都是偶数时,答案为second,否则为first #include <bits/stdc++.h> using namespace std; using ll=long long
周总结
摘要:这一周打了不少比赛,收获真的不少,其中印象最为深刻的还是大家上去讲题,了解到不同的思路,和做题的技巧与思维方式,值得我好好去听和学习。 这一周也在学习动态规划,真的不简单看视频学习有的时候看好几遍才听懂,但是状态比上个星期好了一点,继续加油。 https://www.cnblogs.com/dont
SMU Summer 2024 Contest Round 3(7.10)zhaosang(二进制暴力)
摘要:打的最菜一次,最惨一次,题读假了 A-A http://162.14.124.219/contest/1007/problem/A 签到题 要解决这道题,素数对,数据量不是很大,所以我们可以先预处理素数,这个偶数肯定是等于小于它的两个素数,所以只需要遍历到小于它即可,把素数存起来,然后这两个素数的和
周总结(还需要再认真看学习比如Strange Balls,预处理)
摘要:我按照时间从近到远的顺序写的 1.友谊赛(2/9) 打的一坨,感觉最近状态不是很好,需要调整一下把心态正回来,要更加专注才行。 B - Reserve or Reverse 注意读题,不是替换区间的字符串,而是替换字符,并且题目的要求是替换的区间是越来越小的 ,意思就是替换的字符区间会缩小。我的写法
ACM日常训练日记——8.2
摘要:小训练 Kevin and Permutation 题解很好不多说 #include<bits/stdc++.h> using namespace std; int T,n; int main(){ cin>>T; while(T--){ cin>>n; for(int i=1;i<=n/2;i++
ACM日常训练日记——8.8(二分dp,最小生成树+克鲁斯卡尔算法和普利姆算法)
摘要:codeforces训练 C. Hungry Games 本题大意就是找到最后g不等于0的区间个数。 主要思路:找前缀和第一次大于k的下标idx(二分),然后我们发现idx+1的方案数相当于把idx+1当作左端点来算,然后我们就想到dp[i]代表以i为左端点的方案数。 总结:在比赛的时候找到了idx
8.12(打表+位运算+思维)
摘要:codeforces 训练赛,我打的太菜了,没有想出来规律,队友还是很给力的,我们一起打也很快乐 A. chmod 字符串结合二进制,本来一两发就可以AC的,但是由于我的疏忽,忘记bitset的函数判断,导致多wa了几发,小难受 #include <bits/stdc++.h> using name
8.13(优先队列贪心维护+打表找规律+对顶堆优先队列+DFS减枝+贪心dp)
摘要:nowcoder 第k小 我没有搞清楚题目的意思。以为要全部保留所有的数,其实不然 题目只需要保留到第k位即可,我们可以开一个优先队列去存值 查询小于k输出-1,大于k,pop掉 #include <bits/stdc++.h> using namespace std; #define int lo
8.14 (河南牛客萌新赛 线段树 ,ST求区间最值,迪杰斯特拉建正反图,bfs+二分,模拟)+状态bfs搜素
摘要:nowcoder D区间问题1 线段树板子题(区间修改,单点查询) #include<bits/stdc++.h> #define maxn 1000010 #define mid ((l+r)>>1) #define li i<<1 #define ri 1+(i<<1) using namesp
9.11 codeforces
摘要:A. Make a Square n的范围不超过2*10的9次方,那么最大的i是44722,从大到小开始,如果在n中找到i的平方,那么说明存在这个数的平方break即可 #include <bits/stdc++.h> #define int long long using namespace st
题解9.29-10.3
摘要:1.MakeitAlternating 如果它已经是交替的序列我们就不用管了,最终的目的是把序列变成交替的序列,那么我们可以把连续相同的数 全部取出来只留下一个,可以分成几段相同的数,最后的结果就是把这些相同的数全部只保留一个,用排列组合C(m,1); 第一个结果很简单,把重复的数加一下即可,后面的