- 2024-11-22括号配对 C++题解
括号配对内存限制:512MiB时间限制:1000ms标准输入输出题目类型:传统评测方式:文本比较题目描述Hecy又接了个新任务:BE处理。BE中有一类被称为GBE。以下是GBE的定义:空表达式是GBE如果表达式 A 是GBE,则 [A] 与 (A) 都是GBE如果 A 与 B 都是GBE,那么
- 2024-11-20Atcoder Regular Contest 059 题解
ARC059C.BeTogether签到题。枚举要改成哪个,因为值域只有\([-100,100]\)。然后对总代价取个\(\min\)即可。#include<bits/stdc++.h>usingnamespacestd;typedeflonglongLL;constLLMAXN=105;LLn,A[MAXN];intmain(){ ios::sync_with_stdio(false); cin.ti
- 2024-11-16Codeforces Round 987 (Div. 2)
好不容易的一次CF阳间赛,这次题目普遍较长。A-PenchickandModernMonument题目大意将一个非递增的序列通过操作某些数(可增大可减小),最终使得序列变成一个非递减的序列,求出最少要操作多少次?解题思路这个题也是想了不断时间,而且还提交错误一次,原因就是调试的代码没
- 2024-11-11[题解]P11233 [CSP-S 2024] 染色
P11233[CSP-S2024]染色设\(f[i][j=0/1]\)表示涂到第\(i\)位,且第\(i\)为颜色为\(j\),则考虑用\(i\)之前能和\(i\)匹配的位置\(p\)进行转移。\(p\)需要满足下面的条件:\(a[p]=a[i]\)。\(p\)的颜色为\(j\)。\([p+1,i-1]\)之间的颜色全不为\(j\)。显然,我们只需要找满足条件的
- 2024-11-09【菜笔cf刷题日常-1400】C. Team(构造)
链接:Problem-401C-Codeforces思路:一道思维构造题。根据简单推导不难得出:当n>m+1||(n+1)*2<m时,前者为0最多的情况,后者为0最少的情况。当n>m时,结果一定为“010......010”当n<m时,先是“110110......”,然后当n=m时,是“101010......”。最后剩下的“0”和“1”单独
- 2024-11-07洛谷 P2113 看球泡妹子(DP)
传送门https://www.luogu.com.cn/problem/P2113解题思路可以设 表示前 场比赛看了 场,小红的满足度为 的最大精彩度。然后可以枚举前面的一个比赛 ,可以得到转移方程:但是,我们发现数组空间有一点小大,可以优化一下。发现每一次转移都是 ,于是可以滚动数组优化空
- 2024-10-30ZZJC新生训练赛第十二场题解
难度分类(同一难度下按字典序上升)入门:G简单:C,E,A中等:F,D,B困难:HG-解题思路按照题意模拟即可G-代码实现#include<bits/stdc++.h>intmain(){std::ios::sync_with_stdio(false);std::cin.tie(0);std::cout.tie(0);std::strings;
- 2024-10-25【10-25模拟赛】
你有\(n\)个正整数\(a_1,a_2,\cdots,a_n\),它们的和是\(m\)。你想对他们的每个子集\(S\),求出它们的和。现在你得到了\(2^n\)个\([0,m]\)之间的和,其中数字\(i\)出现了\(b\)次。现在给出数组\(b\),请还原\(a\)数组。显然,最小的满足\(b_i>0\)的\(i\)肯定在
- 2024-10-24【真题研究】CSP-S2019
[CSP-S2019]格雷码很简单的规律题。考虑决策每一位的\(0/1\),从高位往低位决策。将\(k\)可以看作当前的排名。第\(i\)位若\(2^{i-1}<k\),说明当前位为\(0\)。否则当前位为\(1\),并将排名更新为\(k=2^i-k-1\)然后继续决策即可。时间复杂度\(O(n)\),递归或循环实现都可
- 2024-10-23Codeforces Round 966 (Div. 3) A - G
linkvp赛时过了ABD,CE没做出来,唐完了eee感觉自己真的可以退役了A-PrimaryTaskB-SeatinginaBusC-NumericStringTemplate这题很简单,开两个map扫一遍就可以了,但是赛时我只开了一个,然后居然没调出来qwq,降智D-RightLeftWrong很显然的贪心,最左边配对
- 2024-10-21ZZJC新生训练赛第七场题解
难度分类(同一难度下按字典序上升)入门:C简单:G,D中等:E,H,F,A困难:BC-解题思路数一下每个字母的数量看是不是偶数就可以得到答案。C-代码实现#include<bits/stdc++.h>intmain(){std::ios::sync_with_stdio(false);std::cin.tie(0);std::cout
- 2024-10-19P1541 [NOIP2010 提高组] 乌龟棋
dp[a][b][c][d]表示走了a+b2+c3+d*4步的当前的最大值,状态转移方程就出来了。点击查看代码#include<iostream>#include<stack>#include<cmath>#include<algorithm>#include<set>#include<vector>#include<climits>#include<string.h>#i
- 2024-10-17The 2024 CCPC National Invitational Contest (Northeast) ADEJ
The2024CCPCNationalInvitationalContest(Northeast)ADEJA.PaperWatering思路:有两种类型的操作,对一个数开根号或平方。平方没有什么问题,开根号由于是向下取整再平方就会产生不一样的数。那么做法也很简单了。对于一个数\(x\),\(k\)步,首先它能平方往后变\(k\)步,往前能
- 2024-10-13牛客小白月赛100 A~E
牛客小白月赛100A~EA-ACM中的A题签到不多说//AConemoretimes//nndbk#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;constintmod=1e9+7;constintN=2e5+10;lla[N],b[N];intmain(){ios::sync_with_stdio(false);cin.ti
- 2024-10-11区间dp板子
比较简单的dp,但是建模可能会比较困难。以P1775石子合并(弱化版)为例(https://www.luogu.com.cn/problem/P1775)思路:要求1-n的石子合并的代价,可以看成小的区间问题,化为1-k+k-n的两个区间。然后就有递推式子:dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j]+w[j]-w[i-1]。编
- 2024-10-11P1541
简单四维dp。#include<bits/stdc++.h>usingnamespacestd;inta[355],b,t[5],dp[45][45][45][45];intmain(){ ios::sync_with_stdio(0); cin.tie(NULL); cout.tie(NULL); intn,m,r; cin>>n>>m; for(inti=1;i<=n;i++)cin>>a[i]; dp[0][0]
- 2024-10-10洛谷 P7517 [省选联考 2021 B 卷] 数对
题目传送门解题思路其实你只要知道:这题你就秒了。我们发现 ,于是开一个桶来统计每个数出现的数量。我们只需要枚举每一个数的倍数,然后统计。最后,如果一个数出现了多次,再特判一下即可。代码#include<bits/stdc++.h>usingnamespacestd;intn;intcnt[500001];
- 2024-10-02ZZJC新生训练赛第二场题解
先给出比赛链接:https://ac.nowcoder.com/acm/contest/92036A小红打怪ShowCodeAclassPoint{//点类public:intx,y;Point(){}Point(intx,inty):x(x),y(y){}Pointoperator+(constPoint&P)const{returnPoint(x+P.x,y+P.y);
- 2024-09-27ZZJC新生训练赛第一场题解
先给出比赛链接:https://ac.nowcoder.com/acm/contest/91452下面说一下难度分层:(同一难度下按字典序排序)Easy(简单):B,FMedium(中等):A,E,HHard(困难):C,GAnti-AK(防AK):D,Icin.tie(nullptr)->sync_with_stdio(false);//加速输入输出的A游游的整数翻转将所
- 2024-09-25勇攀山丘小队(翻越篇)1——题解
前言胸有丘壑,气吞山河。正片A题:考虑使用DP,由于题目给了2个a不能在一起的限制,所以每次接上一个a都要考虑一下前面的一个状态是否也是a。于是就可以使用\(f,g\)数组,\(f_i\)表示第\(i\)个字母是a的合法情况有多少,\(g_i\)表示第\(i\)个字母是b或c的合法
- 2024-09-25Luogu_P10977(AcWing_299) Cut the Sequence 题解
解题思路考虑线性dp。首先如果存在\(a_i>m\),那肯定不满足条件,输出\(-1\)。设\(f_i\)表示前\(i\)个数分成若干段,然后每段最大数之和,其中每段内的整数之和不超过\(m\)。\(f_i\)肯定是由\(f_j\)(\(1\lej<i\))转移过来的,也就是前\(j\)个数分好后再加上\((j,i]\)这一
- 2024-09-11Alice和Bob的爱恨情仇(lanqiao OJ 3865)
问题如下(附链接):Alice和Bob的爱恨情仇题解代码如下:#include<bits/stdc++.h>usingnamespacestd;intmain(){ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);intn,k;cin>>n>>k;intans=0;for(inti=0;i<n;i++){intx;cin>>
- 2024-09-08c++IOS优化【原创】
这一期,我们来讲IOS优化,上一期讲了GCC的优化,这次给大家带来的是IOS优化,代码如下。ios::sync_stdio(0),cin.tie(),cout.tie();ios::sync_with_stdio(0):默认情况下,C++的标准输入输出流(cin/cout)会与C语言的标准输入输出流(scanf/printf)同步。这可能会导致一些性能开销。当使用
- 2024-09-04TIE cell相关
PR工具使用TIEcell的前提条件:1,DC后的netlist中自带TIECELL或者存在1‘b0,1'b1这种接0或者接1的代码2,在place阶段设置set_dont_touch[get_lib_cells*/TIE01*]false(在place阶段对TIEcell可进行优化)set_lib_cell_purpose-includeoptimization[get_lib_cells*/TIE01*](在p
- 2024-09-02POJ - 3071
概率题。本蒟蒻不会概率dp,于是手搓枚举。反正爆枚够用后记:SadBee的想法考虑维护每队对上上一队/下一队的胜率。只有两队最简单,用1乘即可那多队呢?不如看成两队。见:P(1胜)=P(1战胜2)P(3战胜4)P(1战胜3)+P(1战胜2)P(4战胜3)P(1战胜4)P(2胜)=