d
  • 2024-06-09AcWing算法基础课笔记——求最短路算法
    目录朴素dijkstra算法——模板题AcWing849.Dijkstra求最短路I题目代码堆优化版dijkstra——模板题AcWing850.Dijkstra求最短路II题目代码Bellman-Ford算法——模板题AcWing853.有边数限制的最短路题目代码spfa算法(队列优化的Bellman-Ford算法)——
  • 2024-05-30区间和(C++)
    题目描述】给定一个全部为零的数列,规定有两种操作,一是修改某个元素,二是求区间的连续和。【输入】输入数据第一行包含两个正整数n,m(n≤100000,m≤500000) ,以下是m 行,每行有三个正整数k,a,b (k=0 或1,a,b≤n ).k=0 时表示将a 处数字加上b ,k=1 时表示询问区间[a,b
  • 2024-05-29【回溯】洛谷P1135奇怪的电梯
    题目描述呵呵,有一天我做了一个梦,梦见了一种很奇怪的电梯。大楼的每一层楼都可以停电梯,而且第 
  • 2024-05-23[USACO06DEC] Wormholes G(spfa判断环)
    [USACO06DEC]WormholesG题目背景英文题面见此链接题目描述John在他的农场中闲逛时发现了许多虫洞。虫洞可以看作一条十分奇特的有向边,并可以使你返回到过去的一个时刻(相对你进入虫洞之前)。John的每个农场有m
  • 2024-05-21翻译
    MasteringLPegbyRobertoIerusalimschy(Version1.0)LPegisapattern-matchinglibraryforLua,basedonParsingExpressionGrammars.LPegperformsalltasksofatypicalregexsystem,butitgoeswellbeyondthat.Amongothertasks,wecanwriteentir
  • 2024-05-1920240519刷题总结
    T1(数学化审题)541。观察到其实和最初功率没有关系,功率就是个系数,于是可以把系数提出来。于是定义f[i]为功率为1,i~n最长信息。直接转移就好。#include<iostream>#include<algorithm>#include<cstdio>#include<algorithm>usingnamespacestd;constintN=100010;
  • 2024-04-22分块(板子)
    “优雅的暴力”——分块分块是一种暴力的优化,虽然效率比线段树、树状数组等数据结构低的多\((N+Q)\sqrt{N}\),但是更加灵活。分块的思想是把整个区间分成几个部分,对于要处理的区间包括两个部分“整块”,和区间边缘的“零散块”,“零散块”直接暴力,“整块”进行整体操作即可。
  • 2024-04-1624点求解器
    \(24\)点求解器,输出任意一组解。#include<bits/stdc++.h>usingnamespacestd;#defineto_stto_string#defineinpush_backtypedefdoubledb;typedefstringst;vector<pair<db,st>>Number;intA,B,C,D;boolOut;voidOutput(){Out=true;puts(&quo
  • 2024-04-01P1618 三连击(升级版)
    题目链接:#include<bits/stdc++.h>usingnamespacestd;intp[10],sum;intmain(){ intA,B,C; boolflag=false; scanf("%d%d%d",&A,&B,&C); for(inti=1;i<=999/C;i++){ memset(p,0,sizeofp); sum=0;
  • 2024-03-29ZCMU-1038
    其实感觉不太难,读懂题意就行,我一开始没有仔细去读感觉就很懵。其题目意思就是一段字符串含有数字和'<'或者'>',一开始从左开始遍历,遇到'>'这类东西换方向,如果有多次遇到就删之前那一个;遇到数字就记下,并减去,一直减到0,就删掉思路:无非用一个int类型的数组存放数字打印个数,以及模拟
  • 2024-03-27CF1929C的题解
    (一)每次下注,要么赚\(y\times(k-1)\),要么亏\(y\)。由于不知道什么时候会输,每次都下能赚回前面所有的金额好了。第一次下\(1\),共下\(x+1\)次。(二)AC代码。#include<bits/stdc++.h>usingnamespacestd;intt,k,x,a;intmain(){ scanf("%d",&t); while(t--){ scan
  • 2024-03-24day10,一道竞赛题
    #define_CRT_SECURE_NO_WARNINGS#include<stdio.h>intmain(){ intw,m,n,i,j,k,p,t; scanf("%d%d%d",&w,&m,&n); if(m%w==0) { i=m/w-1;//是w的倍数时层数要减一。 } else { i=m/w; } if(n%w
  • 2024-03-20超级钢琴
    传送门大致题意找出\(k\)个不完全相同的长度为\(L-R\)的区间,使其区间和最大。题解区间和,首先想前缀和维护;区间长度有范围,可以用st表维护区间最值优化。因为要求不完全相同,开结构体记录区间端点。假如以\(i\)为起点,\(t\)为\(i+L-1--i+R-1\)中最优值,找到\(i-t\)
  • 2024-03-17c语言程序设计--实验报告一
    实验项目名称:实验一熟悉C语言运行环境实验项目类型:验证性实验日期:2023年3月14日一、实验目的下载安装Devc6.0程序。了解在该系统上如何进行编辑、编译、连接和运行一个C程序。通过运行简单的C程序了解C程序的特点。二、实验硬、软件环境Windows计算机、Devc6.0三、
  • 2024-03-12二维树状数组
    二维树状数组模板单点修改,子矩阵查询暴力的把一维拓展到二维,直接然后按照一维的方法搞就OK,参考代码:voidinsert(intx,inty,intz){for(inti=x;i<=n;i+=lowbit(i))for(intj=y;j<=m;j+=lowbit(j))d[i][j]+=z;}intgetsum(intx,inty){intsum=0;for(
  • 2024-03-12统计数量(分块+二分)
    第1题   统计数量 查看测评数据信息给一个长度是n的正整数数组,a[1],a[2],a[3],...a[n-1],a[n],其中1<=a[i]<=1000。现在在数组a上进行m次操作:1.Mxyz,表示对a数组的闭区间[x,y]内所有a[i]的值分别加上z2.Axyzz,询问a数组闭区间[x,y]内有多少a[i]的值大于等于z
  • 2024-03-11POJ--3258 River Hopscotch(二分搜索/最大化最小值)
    记录10:232023-3-11http://poj.org/problem?id=3259二分法查找最大的可能解,检查x是否符合条件(当前这个位置上的值-前上一个选取位置的值>=x)注意的点:使用了[begin,end)的左闭右开区间,所以结果要begin-1,end要从L+1开始算点击查看代码intL,N,M;introcks[5
  • 2024-03-10[BalticOI 2017] Toll
    做法很多,本人使用线段树。原图可以看作分层DAG,每层结点有\(k\)个,而\(k\le5\)。假设每层的点编号\(0\simk-1\)。从\(l\)到\(r\)层的路径,在线段树上用区间\([l,r-1]\)表示。线段树上每个结点都存储表示最段路的矩阵,合并时使用Floyd。另外,需要特判询问中是否两个点
  • 2024-03-09CF700C
    图论基础题。但是想偏了想了半天。考虑先对原图做一次tarjan求割边。处理\(c=1\)的答案。\(c=2\)最自然的想法是枚举所有边,断掉,再重新跑tarjan。但是会超时。但是不难发现,只有tarjan建出的dfs树上的树边删去时,树的形态有可能改变。这些边有\(O(n)\)个,每个\(O(n+m)
  • 2024-03-01前缀和
    作用在求一串数的Sn-Sm时,降低时间复杂度O(n)为O(1)代码#include<iostream>usingnamespacestd;constintN=100010;intn,m;inta[N],s[N];intmain(){ scanf("%d%d",&n,&m); for(inti=1;i<=n;
  • 2024-02-2133: 三个数的最大值
    题目描述有三个整数abc,由键盘输入,输出其中的最大的数。 输入一行数组,分别为abc 输出abc其中最大的数 输入样例102030 输出样例30 分析和代码根据题意编写代码即可#include<bits/stdc++.h>usingnamespacestd;intmain(){inta,
  • 2024-02-16最小差距(简单数学)
    第1题   最小差距 查看测评数据信息有a张1元钱,b张2元钱,c张3元钱,现在要把这些钱分给两个人,应该如何分配才能使得两个人的钱的差距最小?输出最小差距。输入格式 多组测试数据。第一行,一个整数G,表示有G组测试数据。1<=G<=10000.每组测试数据格式如下:   一行,3个
  • 2024-02-16算法竞赛经典入门(第2版)习题1
    目前在准备一个竞赛,头绪并不是很清楚,根据知乎的推荐入了一本书《算法竞赛入门经典》(第2版)...下面是写的例题和习题答案也算是简单记录一下学习过程吧。//三位数反转#include<stdio.h>intmain(){intn;scanf("%d",&n);printf("%d%d%d\n",n%10,n/10%10,n/100)
  • 2024-02-15动态规划基础笔记
    背包问题 01背包  一般的动态规划要先考虑好状态,这个状态是一个集合,要能分成几个子集,然后从这些子集(小问题),推到这一整个集合(大问题),且求解过程是一样的,就可以可以转换成大问题分解成小问题一个一个求解,最后合并先要知道状态表示什么再要知道dp的属性,应该跟所求有关,只会
  • 2024-02-07断网测试3-彩票+路径数量
    第1题   彩票 查看测评数据信息每张彩票都印有6位数字,如果彩票的前三位数字的和恰好等于后三位数字的和,那么该彩票是"幸运彩票".输入格式 第一行,一个整数n,表示有n张彩票。1<=n<=1000。接下来有n行,每行是都印有6位数字。 输出格式 共n行,如果是"幸运彩票"输