- 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胜)=
- 2024-09-02数字三角形
给定一个如下图所示的数字三角形,从顶部出发,在每一结点可以选择移动至其左下方的结点或移动至其右下方的结点,一直走到底层,要求找出一条路径,使路径上的数字的和最大。738810274445265输入格式第一行包含整数 nn,表示