- 2024-11-18マス目と整数 题解
前言题目链接:洛谷;AtCoder。题意简述给你一个\(n\timesm\)的矩形\(a\),其中已经有\(q\)个位置填上了数,你需要为剩下的位置分别填上一个非负整数,使得最终任意一个\(2\times2\)的子矩形内,左上角的数加右下角的数等于右上角的数加左下角的数,即\(\foralli\in[1,n),j\in
- 2024-11-11洛谷P1618
P1618三连击(升级版)-洛谷|计算机科学教育新生态三连击(升级版)题目描述将1,2,...9共9个数分成三组,分别组成三个三位数,且使这三个三位数的比例是A:B:C,试求出所有满足条件的三个三位数,若无解,输出`No!!!`。//感谢黄小U饮品完善题意输入格式三个数,A,B,C。输出格式
- 2024-11-07用C语言代码输出三个数
题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?已知:1、三位数2、1-43、各不相同输出:1、有多少个这样的三位数2、依次输出#include<stdio.h>intmain(){for(intb=1;b<5;b++) { for(ints=1;s<5;s++)
- 2024-11-01abc318_g Typical Path Problem 题解 圆方树
题目链接:https://atcoder.jp/contests/abc318/tasks/abc318_g题目大意:给出一个有\(n\)个顶点和\(m\)条边的无向连通图\(G\),没有重边和自环。顶点的编号为\(1\simn\),边的编号为\(1\simm\),第\(i\)条边连接顶点\(u_i\)和\(v_i\)。给出图上三个不同的顶点\(A,B,C
- 2024-11-012024.10.7 模拟赛 多校3
模拟赛水题场。T1colorful签。感觉题挺好,正难则反,找出四角都相同的。在这两排有6个四角相同的矩形对于两排来说,我们只需要记录相同的列的个数,然后能直接算出个数。发现桶排每次清空复杂度太高,考虑每次只开一排的桶,只会有\(n\)个。code#include<bits/stdc++.h>u
- 2024-11-01P11228 [CSP-J 2024] 地图探险 题解
模拟第一眼,可能有人回想起dfs.但因为起点终点,并且走的步数都告诉你了,所以直接模拟就行.注意起始点也算被走过,所以可以用一个标记数组,判断当前格子有没有被走过.代码#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>usingnamespacestd;int
- 2024-10-30CF1187题解
前言这套题相对来讲难度不算高,并且质量也很好,建议尝试CF1187A一眼秒,但我没有考虑s,t只有这一种排列方式,所以取一下\(max(n-s,n-t)\)#include<bits/stdc++.h>usingnamespacestd;intT,n,s,t;intmain(){ scanf("%d",&T); while(T--){ scanf("%d%d%d",&n,&s,&t)
- 2024-10-24P5662 [CSP-J2019] 纪念品 题解
背包因为小伟可以每天进行$2$种操作无限次,所以显然可以使用完全背包.定义状态$f_i$,表示还剩下$i$时,可以拿到钱的最大值.再假设小伟今天买了,明天就卖掉.状态转移方程如下:$f_i=max(f_i,f_{i-p_{k,i}}+p_{k+1,i}-p_{k,i}).$即今天花掉的钱+明天能拿的钱-今天花掉的
- 2024-10-22P9750 [CSP-J 2023] 一元二次方程 题解
大模拟此题大模拟即可,只需注意几点:分母$>0$.要给根式化简.分数要约分.求较大根,那就$b^2$加$\bigtriangleup$即可.分母>0因为求根公式中,分母中只有$a$一个未知数,所以我们只需保证$a>0$即可.所以,当$a<0$时,我们把$a,b,c$全部取相反值.但这也是
- 2024-10-2120241021
今天的模拟赛打的比较舒服。但是还要早起跑操+早读+升旗就不太好。去升旗之前做了第一题,简单的模拟,感觉这很符合cspsT1的难度啊,之前的感觉都有点难了。【贪吃蛇】题意:思路:直接用桶记录蛇的位置,考虑怎么记录加和减操作,可以考虑用STL,但是直接维护两个指针也可以。代码:#incl
- 2024-10-175253 铺地毯 枚举 模拟
思路分析 1. 输入处理:程序首先读取地毯的数量n。然后依次读取每张地毯的信息,包括左下角坐标(a,b)和尺寸(c,d),并存储在数组中。 查询点的输入:读取要查询的点的坐标(x,y)。 3. 检查覆盖: 从最后一张地毯开始,依次向前检查每张地毯是否覆盖点(x,y)。 检查条
- 2024-10-10Note - O(nV) 求只关心一个位置的 01 背包
给定序列\(a_{1\simn}\),其中\(0\lea_i\lem\)。给定\(V\)。询问是否存在\(S\subseteq\{1,2,\cdots,n\}\)满足\(\sum\limits_{i\inS}a_i=V\)。\(n\ge1,m,V\ge0,n,m\le10^4,V\lenm\)。先咕一下,贴个代码(#include<bits/stdc++.h>constint
- 2024-10-092020CSP-J普及组第二轮试题及解析(第二题直播获奖live)
参考程序代码:#include<bits/stdc++.h>usingnamespacestd;constintN=610;intn,w,m;inta[N];intmain(){ scanf("%d%d",&n,&w); intx; for(inti=1;i<=n;i++) { scanf("%d",&x);//读入该分数 a[x]++;//该分数放到桶里
- 2024-09-242023CSP-J 普及组第二轮试题及解析( 第三题一元二次方程)
参考程序代码:#include<bits/stdc++.h>usingnamespacestd;intt,m,a,b,c;intaa,bb,gd1,gd2;intgcd(inta,intb){ if(a%b==0)returnb; returngcd(b,a%b);}intmain(){ scanf("%d%d",&t,&m); while(t--) { scanf("%d%d%d"
- 2024-09-21Acwing题解系列——841. 字符串哈希
#include<iostream>usingnamespacestd;constintN=100010;constintP=131;/*题解https://www.acwing.com/solution/content/24738/可以 把字符串变成一个p进制数字(哈希值),实现不同的字符串映射到不同的数字。采用字符的ascii码乘上P的次方来计算哈希值。X1X2X
- 2024-09-20CCF31-1
题目描述输入输出格式样例代码#include<stdio.h>#include<stdlib.h>#defineu100intmain(){intn,m,i,j,a[u][u],b[u][u];scanf("%d%d",&n,&m);for(i=0;i<n;i++)scanf("%d%d",&a[i][0],&a[i][1
- 2024-09-13Dijkstra求最短路
Dijkstra求最短路849.Dijkstra求最短路I给定一个n个点m条边的有向图,图中可能存在重边和自环,所有边权均为正值。请你求出1号点到n号点的最短距离,如果无法从1号点走到n号点,则输出−1。输入格式第一行包含整数n和m。接下来m行每行包含三个整数x,y,z,表示存
- 2024-09-09最短编辑距离
算法1(线性DP)$O(n^2)$1.状态定义f[i][j]:所有将a[1~i]变成b[1~j]的操作方式的操作次数的最小值2.状态计算:如何分类:分类方式一般考虑的是最后一步a的前i个字母,b的前j个字母,共有三种操作;1.删除:a[1到i-1]==b[1到j],删除a[i],即方程为f[i-1][j]+1;2
- 2024-09-08【算法笔记】三种背包问题——背包 DP
前言背包(Knapsack)问题是经典的动态规划问题,也很有实际价值。01背包洛谷P2871[USACO07DEC]CharmBraceletSAtCoderEducationalDPContestD-Knapsack1有\(n\)个物品和一个总容量为\(W\)的背包。第\(i\)件物品的重量是\(w_i\),价值是\(v_i\)。求解将哪些物品装入背包
- 2024-09-08AtCoder Beginner Contest 318 G - Typical Path Problem 题解
G-TypicalPathProblem题目大意给定一张\(N\)个点、\(M\)条边的简单无向图\(G\)和三个整数\(A,B,C\)。是否存在一条从顶点\(A\)到\(C\),且经过\(B\)的简单路径?数据范围:\(3\leN\le2\times10^5\)\(N-1\leM\le\min(\frac{N(N-1)}2,2\times10^5)\)\(1\leA
- 2024-09-08AtCoder Beginner Contest 260 A~F 题解
A-AUniqueLetter题目大意给定一个长度为\(3\)的字符串\(S\)。输出\(S\)中出现正好一次的字母(任意,如abc中,三个字母都可为答案)。如果没有,输出-1。数据保证\(S\)的长为\(3\),且由小写英文字母组成。输入格式\(S\)输出格式输出任意符合条件的答案。样例\(S\)输出
- 2024-09-08AtCoder Beginner Contest 241 (Sponsored by Panasonic) D~F 题解
D-SequenceQuery题目大意我们有一个空序列\(A\)。请依次处理\(Q\)个命令,每个命令有三种类型,每种类型的格式如下:1x:将\(x\)加入\(A\)(不去重)2xk:求在\(A\)的\(\lex\)的元素中,第\(k\)大的值。3xk:求在\(A\)的\(\gex\)的元素中,第\(k\)小的值。\(1\leQ\le2\times10^5
- 2024-09-08AtCoder Beginner Contest 244 D~F 题解
D-SwapHats题目大意有\(3\)个Takahashi,他们帽子的颜色分别为\(S_1,S_2,S_3\)。我们现在想通过正好\(10^{18}\)次操作,使得\(S_i=T_i\)。每次操作如下:选择\((i,j)\),交换\(S_i\)和\(S_j\)。试问能否达成目标?输入格式\(S_1~S_2~S_3\)\(T_1~T_2~T_3\)输出格式如果能达
- 2024-09-08最短编辑距离
算法1(线性DP)$O(n^2)$1.状态定义f[i][j]:所有将a[1~i]变成b[1~j]的操作方式的操作次数的最小值2.状态计算:如何分类:分类方式一般考虑的是最后一步a的前i个字母,b的前j个字母,共有三种操作;1.删除:a[1到i-1]==b[1到j],删除a[i],即方程为f[i-1][j]+1;2
- 2024-09-08订正
include<bits/stdc++.h>usingnamespacestd;defineintlonglongintn,m,k;inta[500010];intst;strings;signedmain(){cin>>n>>m;for(inti=0;i<n;i++)a[i]=i+1;for(inti=1;i<=m;i++){cin>>s;intd=0,cur=0;while('0