自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 资源 (1)
  • 收藏
  • 关注

原创 2023CSP-S初赛复习整理

本博客主要是在整理网络上优质博客的同时加入个人的一些见解,请耐心阅读。

2023-09-06 16:27:32 368

原创 P8022 [ONTAK2015] Cięcie 题解

洛谷 P8022 [ONTAK2015] Cięcie 题解

2022-08-29 10:18:55 364 1

原创 提高组CSP-S初赛模拟试题整理2

2022备考提高组CSP-S初赛模拟试题整理。

2022-08-28 11:01:04 2323

原创 提高组CSP-S初赛模拟试题整理

2022备考提高组CSP-S初赛模拟试题整理。

2022-08-24 10:20:59 2263

原创 Unfriend 题解

题目描述马克邀请了一些朋友参加舞会。 其中一些朋友又邀请了新的朋友,这些被邀请的朋友又可能继续邀请其它新朋友。在这样的邀请后,现在舞会总共可能有 NNN 个人,从 111 到 NNN 编号。马克觉得人数太多了,可能会拒绝一些被邀请的人。当然,一旦某个人被拒绝参加,则他邀请的朋友自然也不会参加了,同样的,被拒绝的人邀请的朋友们继续邀请的人也不会参加了。当然马克也有可能不拒绝任何人。现在马克想知道共有多少种不同的拒绝方案。PS:本题要求线性算法,不要在意数据范围题目分析这是一道树形 DPDPDP(

2020-10-27 20:36:27 187 1

原创 UVA10883 Supermean 题解

题面题目传送门题目分析非递减顺序列出给的 NNN 个数字。现在计算每一对相邻数的平均值。组成 $N-1个数字,按非递减顺序列出。在新的数字列表中重复这个过程,直到你只剩下一个数字#include<iostream>using namespace std;int n,m;double a[50039];int main(){ scanf("%d",&n); register int i,j,k; for(i=1;i<=n;i++){ scanf("%d",&

2020-10-24 22:11:14 247

原创 Leetcode --- 研究经典系列问题:股票买卖问题

文章目录121. 买卖股票的最佳时机——允许完成一次交易题目描述题目分析code122. 买卖股票的最佳时机 II——允许多次交易题目描述题目分析code123. 买卖股票的最佳时机 III——允许完成两次交易题目描述题目分析code188. 买卖股票的最佳时机 IV——允许完成 kkk 次交易题目描述题目分析code309. 最佳买卖股票时机含冷冻期——允许多次交易并含冷冻期题目描述题目分析code714. 买卖股票的最佳时机含手续费——允许多次交易并含手续费121. 买卖股票的最佳时机——允许完成一次

2020-10-22 19:05:52 309 1

原创 P2312 解方程 题解(作业)

题面题目描述现有一个一元高阶方程:a0+a1∗x+a2∗x2+...+an∗xn=0a0+a1*x+a2*x^2+...+an*x^n=0a0+a1∗x+a2∗x2+...+an∗xn=0现给出数字 mmm,求出此方程在 [1,m][1,m][1,m] 以内的整数解。输入格式第一行包含 222 个整数 n、mn、mn、m,每两个整数之间用一个空格隔开。接下来的 n+1n+1n+1 行每行包含一个整数,依次为 a0,a1,a2,...,ana0,a1,a2,...,ana0,a1,a2,...,

2020-10-07 16:04:20 246

原创 收割 题解(作业)

题面题目描述果园里有 NNN 棵果树,每天你可以选择一棵树将树上的果子摘完,获益就是树上果子的重量。但是每过一天第 iii 棵树上的果子会由于各种原因减少,导致重量下降 p[i]p[i]p[i](当然,如果树上的果子为 000 了,自然获利就是 000),问 KKK 天内你的最大获利。输入共三行: 第一行两个数 N、KN、KN、K; 第二行 NNN 个数表示树的初始重量 a[i]a[i]a[i]; 第三行 NNN 个数表示 p[i]p[i]p[i]。输出仅一行一个数,表示最大

2020-10-07 15:29:49 184

原创 CF922C Cave Painting 题解 (作业)

题面题目描述输入 nnn 和 kkk,判断 nnn modmodmod 111 ~ kkk 每个数的余数是不是都不相同输入输入数据包含多组,每行两个数字 nnn、kkk,空格隔开。 以000 000结束输出对于每行的有效数据,如果所有余数均不相同,输出 YesYesYes,否则输出 NoNoNo样例输入4 45 30 0样例输出NoYes提示说明/提示n,k≤1018n,k≤10^{18}n,k≤1018【样例解释】对于 444 444由于 444 modmodmo

2020-10-07 15:06:08 153

原创 梦境(作业)

目录题面题目描述输入输出提示题目分析考察知识思路分析code题面题目描述相信你也和 Oier−KryOier-KryOier−Kry 一样,码了几行代码,就轻松搞定其等价电阻的值。KryKryKry 忽然间意识到不能总是不干正经事,联赛马上就来了, 该整理下 UUU 盘,好好复习总结下,于是插上 UUU 盘,开始翻阅以前学习的资料。由于前面的更换教室地板,再加上刚才解决电路连接问题, KryKryKry 有点累了,不知道哪里来的困意,在学习压力这么大的情况下,居然不知不觉的睡着了…KryKryK

2020-10-06 11:26:49 238 3

原创 UVA10308 Roads in the North 题解(博客搬家)

因为从一个村庄到另一个村庄时,同一个的村庄不会经过两次,所以村庄和路其实就是一棵无根树,用dfsdfsdfs 找到结点 aaa 的子结点到 aaa 的最大距离再加上次大距离即可。找到的数的值就是树的直径。也可以先从任意点 aaa 一遍 bfsbfsbfs 找到离当前点最远的点 bbb,再从该点再 bfsbfsbfs 一遍找到离该点最远的点 ccc。点 bbb 到点 ccc 之间的距离即为所求。(其实两种方法都是求树的直径)就是输入格式真的毒瘤,在输入上调了好久。代码:1.dfs 做法#inclu

2020-10-05 16:08:52 152

原创 切绳子题解(博客搬家)

题目题目描述有N条绳子,它们的长度分别为Li。如果从它们中切割出K条长度相同的绳子,这K条绳子每条最长能有多长?答案保留到小数点后2位(直接舍掉2为后的小数)。输入第一行两个整数N和K,接下来N行,描述了每条绳子的长度Li。输出切割后每条绳子的最大长度。样例输入4 118.027.434.575.39样例输出2.00提示对于100%的数据 0<Li<=100000.00 0<n<=10000 0<k<=10000分析题目最近在做二

2020-10-05 16:05:25 816

原创 P1182 数列分段`Section II`题解(博客搬家)

题面题目描述对于给定的一个长度为N的正整数数列A−i,现要将其分成M(M≤N)段,并要求每段连续,且每段和的最大值最小。关于最大值最小:例如一数列4 2 4 5 1要分成3段将其如下分段:[4 2][4 5][1]第一段和为6,第2段和为9,第3段和为1,和最大值为9。将其如下分段:[4][2 4][5 1]第一段和为4,第2段和为6,第3段和为6,和最大值为6。并且无论如何分段,最大值不会小于6。所以可以得到要将数列4 2 4 5 1要分成3段,每段和的最大值最小为6。输入第1

2020-10-05 15:58:55 514

原创 木材加工题解(博客搬家)

题面题目描述木材厂有一些原木,现在想把这些木头切割成一些长度相同的小段木头(木头有可能有剩余),需要得到的小段的数目是给定的。当然,我们希望得到的小段木头越长越好,你的任务是计算能够得到的小段木头的最大长度。木头长度的单位是cm。原木的长度都是正整数,我们要求切割得到的小段木头的长度也是正整数。 例如有两根原木长度分别为11和21,要求切割成到等长的6段,很明显能切割出来的小段木头长度最长为5.输入第一行是两个正整数N和K(1 ≤ N ≤ 100000,1 ≤ K ≤ 100000000),N是原木

2020-10-05 15:47:55 551

原创 数字查找题解(博客搬家)

题面题目描述输入n个数字,反复查找某个数字是否存在。输入第一行n和T,代表n个数字,T次查询 。接下来一行n个数字 。接下来T行表示每次查询的数字 。输出对于每次查询,查询成功输出"YES",失败输出"NO",以换行为间隔。样例输入5 32 3 1 4 7617样例输出NOYESYES提示数据范围:n<=100000,T<=100000题目分析这是一道二分算法题,时间复杂度为 O(log2n)O(log2n)O(log2n)。主要思路将所有给

2020-10-05 15:40:46 156

原创 P3416 [USACO16DEC]Moocast S 题解(作业)

题面题目描述Farmer John 有 N 头奶牛,他们想组建一个紧急的“传递信息”系统,以便相互之间传递重要的信息。他们决定使用对讲机来作为装备,而不是通过相互间的哞哞叫,每头牛配有一只对讲机。这些对讲机都有自己的有限传输半径,如果有限传输半径是 P 的话,也就是说该对讲机能将信息传送到与之距离不超过 P 的对讲机(请注意,奶牛 A 可能把信息传递给奶牛 B,但奶牛 B 却没办法把信息传递回去,因为奶牛A 的有限传输半径大于奶牛 B 的有限传输半径)。幸运的是,奶牛可以通过其他奶牛传递信息,所以没必要

2020-10-05 15:24:07 337

原创 P3405 [USACO16DEC]Cities and States S 题解(作业)

题面题目描述为了促进奶牛的智力发展, Farmer John 在牛棚的墙上放置了一幅很大的美国地图。在奶牛们花费很多时间研究地图后,他们注意到一个奇特的现象。例如,有这样两个城市:弗林特(Flint),其州代码为 MI,和迈阿密(Miami),州代码为 FL,他们之间存在一个特殊的关系: “弗林特”(Flint)的前两个字母刚好是迈阿密的州代码(FL),同时迈阿密(Miami)前两个字母也刚好是弗林特的州代码(MI)。如果两个来自不同州的城市满足这一属性,那我们就说这两个城市是特殊的一对。奶牛们

2020-10-05 13:42:12 286

原创 POJ3784 Running Median 题解(作业)

题面题目描述For this problem, you will write a program that reads in a sequence of 32-bit signed integers. After each odd-indexed value is read, output the median (middle value) of the elements received so far.输入The first line of input contains a single inte

2020-10-05 12:45:49 172

原创 CF416C Booking System 题解

目录题面题目分析code题面题目传送门题目分析很明显的贪心。我们把价格从大到小排,相同的话人数少的在前面,桌子按从小到大排,然后暴力双重循环枚举每一组和桌子,能够符合的就记录下来code#include<cstdio>#include<iostream>#include<algorithm>using namespace std;struct node1{ int x,y,num;}a[100039];struct node2{ int x

2020-09-20 13:52:11 178

原创 P2725 [USACO3.1]邮票 Stamps 题解

目录题面题目分析code题面题面传送门题目分析这就是一个完全背包。可以把当前邮资 iii 看作背包容量,每种邮票看作是一个物品,邮票的面值就是物品的体积,kkk 看作是对物品数量的一个限制。然后判断当用的邮票数目在范围内时,就取较小的。状态转移方程为 f[j]=min(f[j],f[j−x]+1)f[j]=min(f[j],f[j-x]+1)f[j]=min(f[j],f[j−x]+1)。最后从头搜就可以了。code#include<cstdio> #include&l

2020-09-04 22:42:31 373

原创 8月集训练习情况

luogu模板P5788 【模板】单调栈 ps:栈P3865 【模板】ST表 ps:倍增rmqP1939 【模板】矩阵加速(数列)ps:矩阵乘法+快速幂P3390 【模板】矩阵快速幂 ps:矩阵乘法+快速幂P4549 【模板】裴蜀定理 ps:gcd乱搞P1886 滑动窗口 /【模板】单调队列 ps:队列题库题目P1850 换教室 ps:概率dp+最短路P5718 【深基4.例2】找最小值P1055 ISBN号码P4414 [COCI2006-2007#2] ABCP233

2020-08-22 10:30:01 192

原创 P2960 [USACO09OCT]Invasion of the Milkweed G

4 3 1 1 ......*. .**.

2020-08-13 15:16:41 172

原创 2020.7暑假信息集训总结

总结经过这次集训,感觉自己的代码能力有了明显的提高。首先可以熟练地打出最短路的SPFA,对Floyd的使用也有了较深的了解。其次学习了树,能够打出求树的重心与树的直径的模板。学习了倍增LCA,巩固了搜索的基本知识的同时更深的学习了搜索。但是其中还是有许多漏洞。作为一名最后进入提高机房的学生,我在基础上没有同机房的同学那么扎实,总是会对题目的理解做出偏差,这说明我还需要加强。在模拟赛中,一次差点爆零,还有一次成绩也不够理想,这让我意识到自己的短板和弱项,决定在暑假的空余时间要继续听课学习,巩固基础算

2020-07-25 12:52:58 113

原创 P3080 [USACO13MAR]The Cow Run G/S 题解

目录题面题目分析分析复杂度代码题面题面传送门题目分析分析这是一道区间dp题。这道题和P1220 关路灯特别相似,因为他们的状态转移方程都类似于f[l][r][0]=min(f[l+1][r][0]+改变量,f[l+1][r][1]+改变量)f[l][r][0]=min( f[ l+1 ][ r ][ 0 ] +改变量 , f[ l+1 ][ r ][ 1 ] +改变量)f[l][r][0]=min(f[l+1][r][0]+改变量,f[l+1][r][1]+改变量)f[l][r][1]=.

2020-07-19 16:25:02 153

原创 P3128 [USACO15DEC]Max Flow P 题解

目录题面题面分析题面题面传送门题目大意:一张有N−1N-1N−1条边的图,点的编号从111到NNN。所有点都被边连通。现在有K(1≤K≤100,000)K(1≤K≤100,000)K(1≤K≤100,000)条路线,第iii条路线连通点sisisi和点tititi。一条路线会给它的两个端点处的点以及中间途径的所有点带来一个单位的压力,计算压力最大的点的压力是多少。题面分析刚看到题面时被吓到了:这不是最大流啊。一看标签:最近公共祖先,LCA立刻开始打dfsdfsdfs的LCALCALCA。这

2020-07-18 15:44:46 243 2

原创 P1119 灾后重建 题解

#include <bits/stdc++.h>using namespace std;int a[1039],f[1039][1039],n,m,q;inline void Floyd(int k){ register int i,j; for(i=0;i<n;i++) for(j=0;j<n;j++) if(f[i][j]>f[i][k]+f[k][j]) f[i][j]=f[i][k]+f[k][j];}int main(

2020-07-17 23:14:23 141

原创 LOJ10155 一本通1577 数字转换 题解

目录题面题面分析初读题面深入分析得出答案树形DP做法树形DP模板(仅供参考)搜索做法搜素BFS模板(仅供参考)代码题面一本通LOJ题面分析初读题面如果一个数 xxx 的约数和 yyy (不包括他本身)比他本身小,那么 xxx 可以变成 yyy,yyy 也可以变成 xxx。例如 444 可以变为 333,111 可以变为 777。限定所有数字变换在不超过 nnn 的正整数范围内进行,求不断进行数字变换且不出现重复数字的最多变换步数。事实上,刚读题目时我根本没看懂。但当我们看到首页时,就明白到底

2020-07-16 22:54:31 399

原创 P1855 榨取kkksc03 题解

目录题目详情题面分析代码题目详情题面传送门ps:kkk自己也说实现愿望是假的题面分析洛谷的运营组决定,如果一名 OIerOIerOIer 向他的教练推荐洛谷,并能够成功的使用(成功使用的定义是:该团队有 202020202020个或以上的成员,上传 101010101010 道以上的私有题目,布置过一次作业并成功举办过一次公开比赛),那么他可以浪费掉 kkksc03kkksc03kkksc03 的一些时间的同时消耗掉 kkksc03kkksc03kkksc03 的一些金钱以满足自己的一个愿望。k

2020-07-02 13:30:38 234

原创 P1060 开心的金明 题解

目录题目详情题面分析代码题目详情题面传送门题面分析从v[j 1 ​]×w[j 1 ]+v[j 2 ]×w[j 2 ]+…+v[j k ]×w[j k ]v[j~1~​]×w[j~1~]+v[j~2~]×w[j~2~]+…+v[j~k~]×w[j~k~]v[j 1 ​]×w[j 1 ]+v[j 2 ]×w[j 2&

2020-07-02 13:08:03 194

原创 浅谈最小生成树之 kruskal算法

最小生成树定义在一给定的无向图 G=(V,E)G = (V, E)G=(V,E) 中,(u,v)(u, v)(u,v) 代表连接顶点 uuu 与顶点 vvv 的边(即),而 w(u,v)w(u, v)w(u,v) 代表此边的权重,若存在 TTT 为 EEE 的子集(即)且为无循环图,使得的 w(T)w(T)w(T) 最小,则此 TTT 为 GGG 的最小生成树。kruskal算法简述假设 WN=(V,E)WN=(V,{E})WN=(V,E) 是一个含有 nnn 个顶点的连通网,则按照kruskalk

2020-06-30 19:32:45 209

原创 P1057 传球游戏 题解

题面传送门一道明显的DP题。只需把一个数组看成一个环就行了。推亿推公式,可以得到以下结果:a[i][j]=a[i−1][j−1]+a[i−1][j+1];a[i][j]=a[i-1][j-1]+a[i-1][j+1];a[i][j]=a[i−1][j−1]+a[i−1][j+1];(这太明显了)就是前一个项的值加上后一个项的值不过要特判当数组为1或n时。代码如下:#include <bits/stdc++.h>using namespace std;int n,m,a[

2020-06-26 19:40:44 230

原创 P1004 方格取数 题解

题面传送门明显的DP题。用f[i][j][k][l]表示第一个人走到(i,j),第二个人走到(k,l)的最优解然后开始推公式(其实很好推,这里不展示了)通过推导,可得以下公式:f[i][j][k][l]=max(f[i−1][j][k−1][l],max(f[i][j−1][k−1][l],max(f[i−1][j][k][l−1],f[i][j−1][k][l−1])))+a[i][j]+a[k][l]f[i][j][k][l]=max(f[i-1][j][k-1][l],max(f[i][j

2020-06-26 19:36:51 174

原创 浅谈动态规划 ——by cbw

浅谈动态规划基本思路动态规划算法通常用于求解具有某种最优性质的问题。在这类问题中,可能会有许多可行解。每一个解都对应于一个值,我们希望找到具有最优值的解。动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。与分治法不同的是,适合于用动态规划求解的问题,经分解得到子问题往往不是互相独立的。若用分治法来解这类问题,则分解得到的子问题数目太多,有些子问题被重复计算了很多次。如果我们能够保存已解决的子问题的答案,而在需要时再找出已求得的答

2020-06-26 17:57:44 320

原创 [NOI Online #3 入门组]观星

题面传送门就是一个dfs查找星座,然后再数出星系数。函数:#include <bits/stdc++.h>using namespace std;int n,m,maxn,maxnr,fx[8]={ 0,0,-1,1,-1, 1,-1,1}, fy[8]={-1,1,-1,1, 1,-1, 0,0};int a[1539][1539],b[900001]={0};inline void read(register int &x){ x=0;regis

2020-05-30 19:36:44 697

原创 [NOI Online #3 入门组]最急救助

题面传送门一个简单的模拟~~主要就是查询当前单词前后的字母是否符合题目要求。比赛时没什么好想法,打了一个虽然AC,但是很乱的代码。#include <bits/stdc++.h>using namespace std;int n,ans[201],maxn=0;struct node{ string s,t,k;}a[201];int p[201];inline void read(register int &x){ x=0;register int f=1

2020-05-30 19:30:52 868

原创 浅谈快速幂 by cbw

浅谈快速幂简介快速幂就是快速算底数的n次幂。其时间复杂度为 O(log₂N), 与朴素的O(N)相比效率有了极大的提高。那么,朴素的代码是什么样的呢?(为防止初学蒟蒻乱闯,这里推荐朴素的快速幂代码)...

2020-04-10 17:28:45 191

原创 朴素 求a的b次幂 ——by cbw

求a的b次幂原理设置变量t,t的初始值永远设为1,循环b次,将t乘以a,最后可以求得答案。这个结果是如何求得的呢?首先,让我们来分析:ab=a×a×a×……×a (其中有b个a)只要我们通过循环,求出a×a×a×……×a (其中有b个a)那么就可以得到最终答案了。(这个原理好像谁都知道)复杂度O(N)O(N)O(N) (嫌慢?可以看看这篇博文)代码#include &l...

2020-04-08 22:31:01 418

木材加工题解

洛谷题目 题目描述 木材厂有一些原木,现在想把这些木头切割成一些长度相同的小段木头(木头有可能有剩余),需要得到的小段的数目是给定的。当然,我们希望得到的小段木头越长越好,你的任务是计算能够得到的小段木头的最大长度。木头长度的单位是cm。原木的长度都是正整数,我们要求切割得到的小段木头的长度也是正整数。 例如有两根原木长度分别为11和21,要求切割成到等长的6段,很明显能切割出来的小段木头长度最长为5. 输入 第一行是两个正整数N和K(1 ≤ N ≤ 100000,1 ≤ K ≤ 100000000),N是原木的数目,K是需要得到的小段的数目。 接下来的N行,每行有一个1到100000000之间的正整数,表示一根原木的长度。 输出 能够切割得到的小段的最大长度。如果连1cm长的小段都切不出来,输出”0”。 样例输入 3 7 232 124 456 样例输出 114

2020-07-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除