- 博客(51)
- 收藏
- 关注
原创 2022天梯赛L2-1插松枝
题目题目描述样例输入8 3 420 25 15 18 20 18 8 5样例输出20 1520 18 18 825 5浅谈总结这里我就放上截图吧,在开始写题解之前我想先写一下我的感受,我没有想到最后自己的天梯赛的结果竟然是这样,我在这道题上纠结了将近一个半小时。事后老师建立起复现赛之后我根据当时的代码稍微改了一下,交了之后过了,当时只过了一分,可能还是我自己能力不足吧。虽然竞赛结束了,但是人生并没有结束,但我觉得重要的并不是拿不拿奖,是能不能从这样一次次的实践中收获经验和教训
2022-04-25 15:49:17
2124
原创 经典算法(Prim,Kruskal)(Dijkstra)
经典算法(Prim,Kruskal)(Dijkstra)Dijkstra题目举例(洛谷P4779)最小生成树KruskalPrim参考链接这里我确实应该反思一下,今天都已经要上战场的时候了,发现我很多关于这种经典的算法甚至都没有整理过,顶多只是知道原理,因此在看到队友的博客之后也是想把这一部分顺便再写一下吧。免得以后再忘了连回顾的地方都没有。Dijkstra算法的基本思想是:每次找到离原点最近的一个顶点,以该顶点为中心进行拓展,最终得到原点到其余点的最短路径步骤如下:将所有顶点分成两部分,已收录与未
2022-04-22 19:56:38
394
原创 CF训练((772)2022.3.31)
CF训练(2022.3.31)A代码BC. Differential Sorting代码D今天和队友一起做了一套CF题目,做题过程中的毛病还是没有把思路打开,还有就是读题的时候不够细心,因此在C题上浪费了很多时间来区分情况,后面wa了一发后才发现原来并不要求操作次数最少的输出。A前面两道题相对来说都比较简单,因此直接把代码放上来吧。代码#include<bits/stdc++.h>#define pb(x) push_back(x)using namespace std;type
2022-04-03 11:03:29
466
原创 2021icpc南京训练总结
2021icpc南京训练总结C Klee in Solitary Confinement附上代码题目集链接总结写这种比较新的题目,尤其是里面的思维题真的好多,我们队伍里面还是太欠缺了,这方面还是要好好增强一下。从这套题目里面也看到了很多的不足,心情多少有点小失落QWQ。这里摆上一个题解链接,后面想起来要再翻开看的时候方便一点。C Klee in Solitary Confinement这道题想了很长时间,都是代码写的差不多了才发现原来又原则性的错误,整得整个人都很麻,这点一定要改正,至少心里已经
2022-03-28 17:13:06
1070
原创 CF练习记录(Codeforces Round #774 (Div. 2))
CF练习记录Codeforces Round #774 Div. 2A代码BC Factorials and Powers of Two思路代码D Weight the Tree这一套题目前两道都比较简单,直接贴上代码吧。题目集链接A代码#include <bits/stdc++.h>#define ll long longusing namespace std;const int maxn=200; void solve(){ ll n,s; scanf(
2022-03-26 20:16:35
573
原创 基础知识回顾一
基础知识回顾离散化拓扑排序链式前向星从去年暑假学习相关的算法知识到现在已经过去了差不多快一年的时间了,其中经常用到很多算法,也有很多算法因为平常接触的比较少生疏了,这里专门写一篇对基础知识的回顾和复习。以供自己参考,写作时间(2022.3.22~…)。离散化数据范围很大,但是数据的数量却没有相应的数量级,数据比较分散时,适合使用离散化。const int maxn=105;struct Node{ int val;//原始数组 int order;//原始下标 bool o
2022-03-23 21:08:03
401
原创 cf题目: Monsters And Spells
题目链接题目意思一个战士打怪兽,每个怪兽有消失时间和血量,战士每秒可以蓄力1点,战士需要蓄力到大于等于该怪兽的血量才能消灭该怪兽,战士在每一秒可以选择继续蓄力或者是从头开始,从头开始的话,战士的的力量是1。就是直接用二分查找到合适的值就可以了,然后把答案存一下,后面打的怪兽可能会用到前面的值,在这个过程中累和,最后输出答案就行了。代码...
2022-03-19 19:50:06
325
原创 天梯赛出题(2.28)
天梯赛出题(2.28)题目描述样例输入样例输出数据STD题解造数据的程序题目描述战争时期,信息的传递尤为关键。现在要对一些信息进行传递,但是为了保证安全,只能运用我方知道的一些规则来进行传递。具体定义如下:首先传递的信息只包含A-Z这二十六个大写字母,我们称之为源信息,根据要求,源信息需要经过两个步骤处理之后才能传递。第一步:将每个字母后移R位,得到中转码(当源码为‘XYZ’,R=2时,中转码=‘ZAB’。即变成当前字母后的第R个字母,超过 ‘Z’则从‘A’开始);第二步:将对应位置的源码和中转码进
2022-03-12 22:47:00
167
原创 2016大连站(日常训练)
2016大连题目D代码题目D推荐这个博客当时竟然没有推出来这个,我要做出深刻检讨。这题目就是给了两个数aaa和bbb,然后又两个数xxx和yyy,他们之间满足:x+y=a,lcm(x,y)=bx+y=a,lcm(x,y)=bx+y=a,lcm(x,y)=b然后我们可以根据这里面的一些数学思想推一下:gcd(X,Y)=gcd(X+Y,Y)=gcd(X,X+Y)=gcd(X+Y,lcm(X,Y))gcd(X,Y)=gcd(X+Y,Y)=gcd(X,X+Y)=gcd(X+Y,lcm(X,Y))gcd
2022-03-06 17:15:23
77
原创 (2022.2.14)训练:2018icpc焦作
(2022.2.14)训练:2018icpc焦作题目A代码题目 D代码总结A(签到),B(思维),D(几何),E(思维+数学),F(字符串处理),I(思维),H(后缀数组)题目A纯纯的签到题,没什么好说的感觉。代码#include <bits/stdc++.h>#define ll long long#define INF 0x3f3f3f3fusing namespace std;int a[5];int judge(){ int res=0; for(
2022-02-21 19:14:46
125
原创 (2022.1.28)训练:2019icpc南京站
(2022.1.28)训练:2019icpc南京站总结总结这一次离我们的目标还有一道题,不过我们也知道
2022-02-06 08:53:02
241
原创 (2022.1.25)训练:2021icpc沈阳站
(2022.1.25)训练:icpc沈阳站总体题目B题目E代码题目F代码题目J代码题目L题目M总体这一次的训练赛整体上来说比起上一次的训练要好上很多,可能是因为上一周的训练让状态多少找回来一点,不过进步的空间还是很大。以此来记录每一次补题和进步。题目集链接题目B题目E签到题,差不多就是一个找固定字串的问题,最后统计出数量然后输出即可。这里直接摆上队友的代码。代码#include <bits/stdc++.h>#define int long long#define INF 0
2022-02-05 19:18:37
616
原创 12.12新生赛题目+解析+std+输入输出
12.12新生赛题目+解析+std+输入输出题目描述输入格式输出格式样例输入样例输出题目解析代码题目描述请你编写一段程序实现两种不同进制之间的数据转换,主要内容就是将一个十进制数变为一个nnn进制数。输入格式第一行一个正整数t(0≤t≤1000)t(0\leq t \leq1000)t(0≤t≤1000),表示测试用例的数量,对于每一个测试用例,都包括两行,第一行一个正整数n(2≤n≤16)n(2\leq n \leq16)n(2≤n≤16),表示转变为n进制数,若n≥11n\geq11n≥11则用
2022-01-23 10:18:59
492
1
原创 (2022.1.19)训练:2021icpc上海站
(2022.1.19)训练:2021icpc上海站总体总结题目D代码题目E题目G代码题目I代码题目J题目K总体总结这一次基本上还是比较仓促,一个重要的原因就是要准备期末考试好长时间没有接触过比赛了。总体上,对自己的要求还是要尽快地熟悉一下做题的流程和技巧,当然更重要的是提升自己的能力。题目D题目描述很简单,看起来是构造问题,其实更像是数学问题,我们把这道题目中关于比值的关系计算之后就会发现,这道题其实就是一道求解的题。我们需要根据解的形式来看一看什么时候解能够满足条件,也就是在根号中的部分开根后能够
2022-01-23 10:15:20
1514
1
原创 2021icpc济南站
2021icpc济南站C Optimal StrategyD Arithmetic SequenceE InsidemenI Permutation PairJ DeterminantKL Strange Series题目集链接这一次比赛还是太年轻了,很多知识感觉还是有掌握的误区,同时思路还是没有打开,不过确实也是没想到这题目集里面会有多达九道数学思维题,着实有点措手不及。以此为鉴还是要锻炼一下速度,并且不能再临场的时候陷入思维误区(说白了还是要多练)。以下是这次要整理的题目:C Optimal St
2021-11-23 18:42:45
1607
2
原创 2021年招新题目
题目(limit)题目大意小徐是一个数学学得很好的人,各种数学问题信手拈来。尤其是让人头大的极限问题,据说他可以在很短时间里求出答案。今天小邵发现了一道数学题:∑i=1nai×ln(1+bi×x)xt \frac{\sum_{i=1}^n a_{i} \times \ln(1+b_{i}\times x)}{x^t} xt∑i=1nai×ln(1+bi×x)看到题目后他打算和小徐比一下计算速度,但是他的数学程度比不上小徐,因此他想到了借助计算机的计算能力,因此他想请你帮他设计一个程序,在短时
2021-11-01 21:36:51
106
原创 2018-2019 ACM-ICPC, Asia Shenyang Regional Contest
2018-2019 ACM-ICPC, Asia Shenyang Regional Contest训练总结C Insertion Sort题目和分析代码J How Much Memory Your Code Is Using?题目和分析代码K Let the Flames Begin题目和分析训练总结本周选用了这一套题目来进行练习,感觉本套题目还是有可取之处,但是我们做的情况只能说是中规中矩,再简单题目上的速度和正确率相对之前还是有了不小的提高,多的不说了,再接再厉吧。C Insertion Sor
2021-11-01 21:32:27
336
原创 poj(3295,1068,2632,1573)
poj(3295,1068,2632,1573,2993,2996)3295题目描述代码1068题目描述代码3295题目描述就是给了你五种计算方式,都是以前缀的形式给你的,即最开始的字符是操作类型,后面是操作数,其实这稍微想一下就和后缀表达式道理是一样的,只不过是换成了前缀。五种操作分别是:与,或,非,前一个数的非或后一个数,同或。然后问你这个式子是不是永真式。因为五个参数,最后的结果最多也就是32个,我们直接遍历,看是不是都为1。代码#include <iostream>#inc
2021-10-26 19:07:32
179
原创 poj题目(1753,2965,1328,2109,2586)
poj系列题目1753,2965,1328,2109,2586175329651328题目大意和分析代码2109题目大意和分析代码2586题目大意和分析代码175329651328题目大意和分析一个二维坐标系,y轴负半轴为陆地,y轴正半轴为海洋,则x轴为海岸线,在海岸线上安装雷达,雷达覆盖半径为d,问最少需要几个雷达能够将所有的岛屿包括在内。思路如下:我们想象一下,一个雷达只能放在x轴上,那他的范围就一定是一个圆心在x轴上移动,半径为d的圆,而极端的情况就是小岛在圆的边界上,这样雷达就能覆盖到这
2021-10-15 21:14:11
98
原创 2021ccpc网络赛重赛
ccpc网络赛重赛Kanade Doesn't Want to Learn CG题目代码Nun Heh Heh Aaaaaaaaaaa题目代码Kanade Doesn’t Want to Learn CG题目就是一道很简单的几何题目,给出下面一个图,其中AC为蓝框,BD为篮板。其实就是在模拟一个投篮的过程,给定一个二次函数模拟篮球的轨迹,让我们计算一下能否成功投进去。图中A’为A关于BD的对称点,因为篮球撞到BC之间(根据题意包括B点但是不包括C点)的时候会反弹,我们可以看作它是直接穿过了BC到了另一
2021-10-11 20:48:19
950
原创 Asia Hong Kong Regional Contest 2016(2021/10/6)
Asia Hong Kong Regional Contest 2016B Kattis doors题目分析与大意代码C Playing with Numbers题目大意及分析代码J Taboo题目大意及分析代码题目链接B Kattis doors题目分析与大意就是在两个球之间找能够通过的最大半径,其实就是求几次点到线段的距离。(直接从代码中看)关于直线和线段的距离公式参见链接。代码#include<cstdio>#include<cmath>#include<
2021-10-07 18:08:59
150
原创 Deltix Round, Summer 2021 (codeforce)
@[TOC](Deltix Round, Summer 2021 (codeforce))题目链接Take Your Places!题目意思和分析给定一串数字,我们可以进行一个操作,就是交换两个相邻的数字,最后我们要保证奇数和偶数不能够相邻,求的是最少的操作次数。基本思路就是直接按照奇数或者偶数的相对位置来进行交换,比如下面的一个{1,3,5,2,4,6},那么可以看出里面奇数的相对位置是1,3,5,那么按照奇数开头的最后的序列也一定是{1,偶数,3,偶数,5,偶数};而按照偶数开头的序列一定是{
2021-10-02 19:36:34
131
原创 树链剖分学习笔记
树链剖分学习笔记前言操作过程前言树链剖分其实是一种树上的操作,归根结底还是在对树进行一种操作,因此要用到很多树上的操作的知识。比如说链式前向星,dfs等。总体上就是将整棵树剖分成一条条的链,这些链被称为树的重链,重链就是由重边组成的一条链,而重边则是由根节点和其节点数最大的儿子节点连成的那一条边。如下图,标粗的边就是重边,连起来就是一条重链,没有标粗的自然就是轻边:操作过程如何将整棵树剖分成一条条重链?用到了两次dfs,之所以两次,是因为第二次dfs要用到第一次得出的结论。...
2021-09-18 17:01:16
64
原创 差分学习笔记
差分学习笔记前言例题思路代码前言差分主要包括一维和二维两个部分,它可以维护多次对序列的一个区间加上一个数,并在最后询问某一位的数或是多次询问某一位的数。二维差分中区间变为二维的,具体做法看链接,后面直接上例题,将差分的代码放到下面。例题题目链接思路就是利用差分来完成矩阵中子矩阵的加减,然后再判断这一部分的值是否大于零,根据其与零比较的结果判断是否满足题意。代码#include <bits/stdc++.h>#define ll long longusing namespace
2021-09-11 18:00:59
71
原创 数位dp学习笔记
数位dp前言不要62[HDU2089]题目描述前言数位dp是一种计数用的dp,一般都是求再区间[l,r]之间满足条件的数的个数。一般像这种题,给出的数据范围都比较大,一个一个进行遍历显然不行,所以就用到了我们今天学习的数位dp,顾名思义就是在数位上进行dp。数位的含义:个位、十位、百位等等,数的每一位就是就是数位。数位dp的实质就是 换一种暴力枚举的方式,使得新的枚举方式满足dp的性质,然后记忆化就可以了。数位dp一般应用于:(1)求出在给定区间[A,B]内,符合条件 P(i) 的数 i 的
2021-09-08 15:47:04
240
原创 数位dp模板
带注释typedef long long ll;ll digit[30];ll dp[20][state];//不同题目状态不同ll dfs(ll pos,/*state变量*/,bool lead/*前导零*/,bool limit/*数位上界变量*/)//不是每个题都要判断前导零{ //递归边界,既然是按位枚举,最低位是0,那么pos==-1说明这个数我枚举完了 if(pos==-1) return 1;/*这里一般返回1,表示你枚举的这个数是合法的,那么这里就需要你在枚举时必
2021-09-08 14:46:54
159
原创 树状dp学习笔记
树状dp前言别墅派对[HDU2412]题目描述代码前言树状dp顾名思义就是在树形结构上实现的动态规划,动态规划自身是多阶段的决策问题,而树形结构有层次性,正好对应了动态规划的多个阶段。其求解过程一般是自底向上,将子树从小到大作为动规的阶段。一般都是采用dfs,递归求解子树,回溯时从子节点向上进行状态转移,在以当前结点为根的所有子树都求解完毕后,才可以求解当前结点。这里我直接用相关的题目来加深大家对树状dp的学习。别墅派对[HDU2412]题目链接题目描述独立集问题,独立集是指在图中两两互不相邻
2021-09-01 09:40:49
197
原创 题目练习_球面距离_圆覆盖点
题目练习_几何球面距离题目大意代码球面距离题目大意给定两个点的经度和纬度,求两个点的球面距离,半径为地球半径6370km。经度和纬度给定分和秒,需要转化。代码主要就是要学习球面距离的求法,即转化为圆心角和半径的乘积。#include <iostream>#include <bits/stdc++.h>#define INF 0x3f3f3f3f#define pi 3.141592653589793238462643383279using namespace
2021-08-21 10:23:29
201
原创 2021牛客多校第九场
2021牛客多校第九场H Happy Number思路代码题目连接H Happy Number思路很容易能看出来这道题和三肯定是有关系的,因为总共有三个数字可供选择,这样我们就知道了:如果是一位数的话,有三种情况;两位数的话,就是九种情况;三位数就是27种情况,我们也很容易就能发现其中的规律。下面的代码就是根据不同位数的符合条件的数的个数是三的次方的规律写出来的。代码#include<iostream>#include <bits/stdc++.h>//线性dp之最长
2021-08-21 09:56:11
137
原创 2021杭电多校第七场
#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>#include <cstdlib>#include <queue>#include <unordered_map>#include <map>#include <set>#include <numeric>#include
2021-08-13 15:50:38
627
2
原创 2021牛客多校第八场
2021牛客多校第八场A Ares, Toilet Ares思路附上代码E Rise of Shadows思路题目链接A Ares, Toilet Ares思路从这道题目我们就要引起重视,不知道为什么会把这道简单的题目看成一道比较难的题,其实就是一道模数中的计算,需要引以为戒。附上代码#include <iostream>#include <bits/stdc++.h>#define INF 0x3f3f3f3f#define pi 3.14159265358
2021-08-11 10:49:57
181
原创 2021牛客多校第七场
2021牛客多校第七场H xay loves count思路附上代码H xay loves or思路附上代码H xay loves count思路题解上说是可以直接枚举,不过我们这边是先求出每个数的因数,再从中找有多少中情况,估计复杂度会稍微低一点。附上代码#include <iostream>#include <bits/stdc++.h> #define INF 0x3f3f3f3f#define pi 3.141592653589793238462643383
2021-08-08 11:19:59
249
原创 数论_母函数_指数型母函数
数论的一些基本知识母函数简单介绍代码模板母函数简单介绍定义:对于序列a0,a1,a2,a3…an构造一个函数:G(x)=a0+a1x+a2x2+a3x3+…称函数G(x)是序列a0,a1,a2,a3…an的母函数。举例:以选砝码为例,母函数就是利用次幂来表示面值和数量,例如:(1+x)用来表示1个1克的砝码,(1+x2)用来表示1个2克的砝码,(1+x3)用来表示1个3克的砝码,(1+x4)用来表示1个4克的砝码。表示这几个砝码的组合情况时,只要将各个式子乘起来就OK了。例子中的四个式子相
2021-08-06 17:05:17
329
原创 题目练习_跳骚_幸运数字_解方程
程序设计练习题目跳骚代码如下跳骚代码如下#include <iostream>#include <bits/stdc++.h>#define inf 0x3f3f3f3f#define mod 1000000007#define lmax 1000#define pi 3.141592653589793238462643383279#define eps 1e-7using namespace std;typedef long long ll;typede
2021-08-06 16:25:51
152
原创 2021杭电多校第六场
杭电多校第六场杭电题目号1005 Median思路附上代码杭电题目号7025~70351005 Median思路这道题目是给了我们1到n的序列长度n,以及将这个序列分为m个集合,每个集合的中位数给出了。然后问嫩不能将其他数放到集合中二不改变中位数,如果能输出YES,否则输出NO。我们可以采用下面的思路:分为两种情况1、如果长度最大的段的数字个数不大于其它段的数字个数之和,那么最终要么全部消掉,要么剩下一个,且剩下的这个数可以在任何一段内。如果会剩下,不妨将最后一段的数字剩下一个,此时再把最后
2021-08-06 16:16:05
309
原创 2021杭电多校第五场
2021杭电多校第五场1003 VC Is All You Need思路附上代码1006 Cute Tree思路附上代码题目链接1003 VC Is All You Need思路判断在k维空间里,几个点随便处于两个状态,如果一个k-1维的空间能将这些点按照状态分割,那么输出Yes,否则输出No。经过分析可以知道,如果点数与维数的差值大于一则不存在这样的k-1维的空间,输出No,否则输出Yes。附上代码#include <bits/stdc++.h>#define ll long
2021-08-04 15:53:29
269
原创 2021牛客多校第六场
牛客多校第六场I Intervals on the Ring思路附上代码题目链接I Intervals on the Ring思路这道题题意就是给了你一些区间,先求出这些区间的并集,让你构造一些区间,使得你构造区间的交集等于题目中给出区间的并集。需要注意的就是给出的序列是一个环状序列,就是n和1是相连的,比如序列长度为10,区间为[8,2],意思就是8,9,10,1,2。我们可以先将选中的元素标记出来,看看有几个连续的区间,需要注意的是当n和1都取到的时候,需要将第一个和最后一个区间合并。附上代
2021-08-04 10:55:50
203
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人