自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 收藏
  • 关注

原创 如何上传题目到CUPOJ

如何在CUPOJ添加题目

2022-01-14 14:43:36 277

原创 学习路上的杂事/坑

mac上的eclipse安装sqljdbc驱动,jdk15会出错,换成1.8就好了连接数据库的代码:package test;import java.sql.*;class Test{ public static void main(String[] args) { // TODO Auto-generated method stub try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); .

2021-12-17 10:03:17 828

原创 循环节+大数取余(大数高阶幂取小数余

纳米猫猫昨天做的一道“签到题”,涉及到大数取余和循环节记录一下。高阶幂但是取模很小,用循环节把每一次乘法运算之后的数存储。之后大数取模即可。//x为底数,每做一次乘法乘一个x//ll vis[1010];全局变量,因为mod<=1000,所以最多乘1000次,循环节的长度最大为1000//vis[i]表示乘了vis[i]次得到i,nums[i]表示乘了i次得到nums[i] nums.push_back(1); vis[1] = 0; for (i = 1; i &l

2021-06-28 15:00:07 288

原创 Codeforces Round #715 (Div. 2) C. The Sports Festival(dp)

Assume that the array of speeds is sorted, i.e. ????1≤????2≤⋯≤????????.The key observation is that the last running can be assumed to be either ????1 or ????????. This is because if ????1 and ???????? are both in the prefix of length ????, then clearly ??

2021-04-17 14:14:10 172

原创 hdu4348 To the moon (主席树区间修改、lazy累加

题意给一个数组a,有n个数,m次操作。hdu43481e5个数,1e5次查询操作有四种,C l r d:更新区间[l,r],值都加上d,并且时间前进1Q l r:查询[l,r]的区间和H l r t:查询t时刻的区间和B t:回到t时刻(一定是历史时刻),且t时刻之后的操作都作废了。题解这道题的关键是怎么更新区间和。本来线段树更新区间和要push down也就是把懒惰标记下移,但是这样,整个修改区间都需要新建线段树的节点,空间不够。所以考虑在查询的时候传参数下去,也就是一路加上大区间

2021-04-08 15:11:51 84

原创 2021icpcKunming M题(主席树、集合内不能组成的最小数

传送门写在前面:第一次打XCPC,打铁了=.=800只队伍210块牌子。。最后一小时才开始看这题,但是没想到怎么处理才能得到不能生成的最小值,遂卡题。赛后才知道这好像是个徐州的原题(泪目首先解决不能生成的最小数排序之后从小到大:基于这样一种迭代的思想:我当前假如说可以得到最大的数为k,则再来一个新的数字p,若p<=k+1,则我可以得到的最大的数为p+k,若p>k+1,则会出现空挡,k+1就肯定不能再得到。第i个数如果大于i-1个数的前缀和,那么不能生成的最小数就是前缀和+1然

2021-04-06 15:01:35 102

原创 Tag

2020.12.29.0:27:25Educational Codeforces Round 101 (Rated for Div. 2)纪念人生第一次爆零,你真厉害!

2020-12-29 00:29:08 174 2

原创 坑点

1.慎用pow函数,有精度偏差。特别是整数幂运算,用快速幂~ll quickPow(ll a,ll b,ll mod) // //(a^b)%mod{ ll res=1; while(b>0){ if(b&1) res=(res%mod*a%mod)%mod; b>>=1; a=(a%mod*a%mod)%mod; } return res;}2.

2020-12-17 10:13:38 107

原创 线段树(hdu3308LCIS、poj2777Count Color

hdu3308LCISTime Limit: 6000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 10830 Accepted Submission(s): 4632Problem DescriptionGiven n integers.You have two operations:U A B: replace the Ath number by B. (

2020-11-17 19:59:31 199

原创 hdu 4267 A Simple Problem with Integers(线段树

题意:给定一个数组A,然后进行两种操作 1.对 a,b区间内任意i,如果(i-a)%k==0,则将Ai的值加上c;2.输入任意a,输出Aa的值。思路:线段树1<=k<=10因为线段树只能存连续的数,单点/区间,查询,修改。题目说要间隔几个数再增加。所以想到多建几棵树。具体是1+2+3+…+10棵。由余数和除数决定。k=1时,mod=0;k=2时,mod=0、1;k=10时,mod=0、1、…、9总共55个。#define MAX 50050#define mid (l+

2020-11-13 18:15:42 90

原创 洛谷 P1496 火烧赤壁(离散化

P1496 火烧赤壁世界上只有一种英雄主义,就是认清了生活的本质后依然爱他。----罗曼罗兰通往成功的道路上有很多挫折,这正是成功的意义所在。----yxr记今天下午上机退化成海淀区小学二年级水平。线性表不会,连简单的矩阵乘法也不会。-.-----------------------------正文--------------------------------题意很好理解,求火烧过的长度。简单的做法是开一个很大很大的数组,有火为1,否则为0,数有多少个1就可以了。显然,会爆。既然RE

2020-09-25 20:47:40 383

原创 洛谷 P3124 [USACO15OPEN]Trapped in the Haybales S(分别向左右枚举,窗口边界问题,双变量。。

洛谷 P3124先给大家表演一波错误的思路:从初始位置出发向左右两边分别破障,取最小值。错误的思路加上理解题意错误,题意只能增加一捆稻草。导致浪费时间+自闭自闭自闭具体代码如下:#include <iostream>#include <algorithm>#include <cstring>#include <math.h>#include <stdlib.h>#include <functional>#incl

2020-09-23 18:11:26 213

原创 洛谷 P4086 [USACO17DEC]My Cow Ate My Homework S(前缀和

洛谷 P4086简单的前缀和大水题emmmm题意:给出n个数,删除前面的k个数,求剩下n-k个数中删除最小值后的平均值。要求求出平均值最大时的k值,如果有多个,要求从小到大输出。显然地,如果删除k个数后,剩下的n-k个数一定大于等于2。(因为如果只有一个数,删去之后就没了,平均分为0。。同时,k也必须大于0。思路:既然是从前往后删,那么不妨从后往前记录数字和以及到目前为止的最小值。从而可以求出平均值,记录最大值。最后从后往前输出平均值等于最大值的k值。简单的前缀和处理就能解决了。注意边

2020-09-22 19:55:48 317

原创 洛谷 P2882 [USACO07MAR]Face The Right Way G(差分

洛谷 P2882题意:N头牛排成一列1<=N<=5000。每头牛或者向前或者向后。为了让所有牛都 面向前方,农夫每次可以将K头连续的牛转向1<=K<=N,求操作的最少 次数M和对应的最小K。思路:想要将所有的牛全部朝向一个方向。试想:如果不从头开始考虑,那么如果头部有牛牛朝后,那么要对头部的牛牛调整的时候必将会使已经调好方向的牛牛变动方向。为了表示方便,我们用0、1表示朝后、朝前。那么对于每一个确定的k(k头连续的牛),我们就从前往后,遇见一个0,就使从其开始的k头牛变

2020-09-22 18:28:07 182

原创 洛谷 P1419 寻找段落(单调队列,二分

P1419 寻找段落题意:在n个元素中找l<=size<=r的最大连续段落平均值。思路1:先求前缀和,双重循环暴力找最大平均值。代码如下:#include <iostream>#include <algorithm>#include <cstring>#include <math.h>#include <functional>#include <string>#include <vector&g

2020-09-20 18:52:19 215

原创 洛谷 P1638 逛画展(队列,窗口移动

P1638 逛画展思路:这道题我的想法是模拟一个窗口,从左到右移动。如果这个窗口里面已经包含了所有画师的画作,那么就记录minn,并且将队首元素pop出去,直到窗口不包含所有画师的画作为止。(这句话好像有歧义。。就是没有包含所有画师的画作时就可以退出循环了之后将窗口后面一位的画push进队列。还有一点需要注意的是用一个整型数据记录窗口中有多少个画师的画作。完整代码:#include <iostream>#include <algorithm>#include &

2020-09-19 21:49:26 334

原创 洛谷 P3143 [USACO16OPEN]Diamond Collector S(队列,枚举

P3143题意:要在排好序的数列中找出两段长度和最大的不重合的区间,并使两个区间中的最大值与最小值的差不大于k。思路:先排序利用队列的性质,将以每一个元素为开始的可以放在同一层的钻石的数量记录下来。该元素分别为每一层放的第一个钻石的标号。枚举,最后在n个元素中找到两个元素,使两层放的钻石数量和最大,且不包含重复的钻石。输入 #17 31051129514输出 #15数组Valuek10 5 1 12 9 5 14k1 5 5 9 10 1

2020-09-18 20:28:09 394

原创 洛谷 P1950 长方形(单调栈

P1950 长方形题意:在一组点中找出全部的矩形,输出他们的数量。测试数据:输入6 4….***.….**…*.***输出38Q1.要如何才能做到不漏不重呢?统计每一行,以其作为底边所能组成矩形的个数。总和为方案数。在测试数据中,每一行的矩形个数分别为:10264106总和为38。Q2.如何统计每一行,以其作为底边的矩形数?定义 hi 为当前行第 i 列可向上延伸多少(即有多少为图画的块,如果当前块被图画那么值为0)使用单调栈算出 li 和

2020-09-17 16:37:27 425

原创 洛谷 P1440 求m区间内的最小值(单调队列,deque

P1440 求m区间内的最小值题意:要求找出每一个元素前m个元素中的最小值。简要分析:如果遍历n个元素,再对每一个元素往前搜索前m个元素,时间复杂度为O(N*M);说明/提示对于 100% 的数据,保证 1≤m≤n≤2×10^6。1≤ai​≤3×10^7。第一种方法写一定会TLE。第二种方法:既然要找前m个元素的最小值,考虑用队列把数据按从小到大的顺序存下来。单调队列单调队列,就是单调的队列。答案(最优解)存在队首,队尾就是最后入队的元素。如何判断这个数是不是在m区间之间呢?ty

2020-09-16 15:44:58 288

原创 洛谷 P1719 最大加权矩形(前缀和,最大子序列和,矩阵压缩

P1719 最大加权矩形这道题和P1115 最大子段和思路类似。只是将一维升到二维。很重要的解决思路,矩阵压缩。如果能把二维降到一维,那就好处理了。假设有一个矩阵:-5 6 41 -2 62 1 -3想得到其中任意一个矩阵,我们不妨先确定列。很明显用两个循环嵌套可以解决。假设我们取2,3列6 4-1 61 -3列取好之后那么每一行的和值就是确定的了。注意:用前缀和可以优化时间。105-2接下来我们再在这个一维数组中求最大子序列的和。就和P1115的做法一

2020-09-13 13:38:45 221

原创 洛谷 P3406 海底高铁(差分

P3406 海底高铁基本思路:对于其中一小段,我们要么全部买纸票,要么全部刷卡。所以我们只需要统计每一小段经过的总次数。如果你暴力模拟统计的话,估计(一定会tle。接下来来看一组例子:六个数:0 0 0 0 0 0如果想让它从第二个到第四个数全部+1,则为0 1 1 1 1 0如果这样模拟+1,所用的时间复杂度为O(N)如果记为0 1 0 0 0 -1所用时间复杂度为O(1)每一位的值就是其前缀和0 1 1 1 1 0这是一维空间内的差分,对于二维空间的差分。P3397 地

2020-09-12 12:57:19 252

原创 洛谷 P2671 求和(vector,数论

P2671 求和##20分做法看完这题,第一想法当然是无脑暴力啦…直接枚举x,y,z,看是否满足条件即可。算法复杂度为O(N^3)这样就可得20分了。当然,如果你想用更高级的算法不开long long也是可以的。##40分做法可以直接枚举x,z的值,通过条件(1)求出y。再看是否满足条件。算法复杂度为O(N^2)##40~50分做法仍然是枚举x,z的值,但可以先分析x+z=2*y的奇偶性,因为xyz是整数,因此2y是2的倍数,因此x,z必然都为偶数或奇数,因此可以分奇偶性进行枚举,此时这个三元

2020-09-11 19:37:03 269

原创 洛谷 P1825 [USACO11OPEN]Corn Maze S(bfs,特判一下传送门

洛谷 P1825震惊!这题居然是绿题!!题目大意是说要找到从A到B的最短路(走的步数最少很容易想到用bfs。搜路径的过程中注意几点:越界玉米(墙)走不过每个点只用搜一次传送门要特判,找到它对应的位置找到终点为了代码简单,我们可以写一个结构体,包含了x,y坐标和搜到这个点为止的时间。另外开一个数组记录是否搜过该点。int tu[305][305];int n,m;//范围int x,y;//起始位置int flag[305][305];typedef struct{

2020-09-09 15:42:32 221

原创 洛谷 P1032 字串变换(bfs,最少步骤,kmp

P1032 字串变换这题题目说了最多6个选项若在10步(包含10步)以内给了几个选项就一个一个试呗。蒟蒻首先想到dfs,但是一条路搜到黑时间复杂度太高,或者根本搜不到。。(dalao们设计搜索深度AC一般的,求解的个数用深搜,求最优解用广搜。取出队首元素,找字串,更改,放入队列字符串匹配的时候用STL可以大大提高敲代码效率。开两个数组记录串的转换关系,然后以a串(原串)为起点开始搜索,搜索目标是b串。需要一个map记录某个串是不是被搜到过,如果已经搜过了就不再继续搜 。我们枚举

2020-09-08 18:47:44 112

原创 洛谷 P1596 [USACO10OCT]Lake Counting S(dfs,搜就完事儿了

洛谷 P1596 题目大意:找一块儿地中水池的个数。基本思路:找到一个水池块时,将所有与他相连的水池块全部标记。且不越过旱地块儿。减枝操作:如果这个水池块儿搜过,那么就不用再搜了。什么时候更新最大值?当主函数中的循环,搜到新的水池块儿时,也是第一次搜到这个点,ans++。预处理:for(i=0;i<n;i++){ for(j=0;j<m;j++) { cin>>c; if(c=='W') k[i][

2020-09-07 14:22:10 272

原创 洛谷 P2404 自然数的拆分问题(dfs,用数组存结果

洛谷 P2404 题目要求将n按从小到大差分简单的回溯,但是题目要求将每一种方案都输出。那么想到(深思熟虑之后可以开一个数组,用来存组成这个数字的数。在深搜函数中写一个循环就能从小到大拆分数字。当剩下的数字是0时,说明数字已经差分完毕,输出数组所有的数。void dfs(int x,int y,int p){//剩下的数字,数组里面最后一个数字,数组位置 if(x==0&&y!=n) { int i; cout<<num[0

2020-09-07 12:56:09 149

原创 洛谷 P1101 单词方阵(dfs,全局与局部

传送门:洛谷 P1101 单词方阵【写在前面】很久没有写博客了,从2020年8月10日开始到成都,重庆旅游。回来后每天无所事事,一直玩到今天,良心过不去才来做题and写博客QAQ写博客的目的是自己监督自己学习,继续努力吧少年!^ - ^new month,new day!——————分界线————————一道简单的深搜题,退出搜索条件:1.超出边界2.搜过了,重复节点3.当前节点不匹配搜到了最后一个节点时,要将所有搜到的节点记录下来。为此我开了一个二维数组记录)全局变量:i

2020-09-01 13:28:07 141

原创 洛谷 P1019 单词接龙(dfs,字符串,贪心

洛谷 P1019 单词接龙(dfs,字符串洛谷 P1019 单词接龙数据范围20,可以为所欲为之为所欲为嘿嘿嘿大体思路:用dfs,在所有的单词中选取任意个单词,使得接龙后的新单词最长。预处理:也是最重要的部分)找到任意两个单词中最小的共同字符数目)string x,y;例如:x在前,y在后)从x的最后一个字符开始,往前一个一个摞)第一层)如果该字符与y字符首字符一样,开始第二层循环))如果失配,出循环(第二层)如果一样,该字符(指x)和另一个字符(指y)各自后移))如果该字符到

2020-08-09 16:51:29 149

原创 洛谷 P1433 吃奶酪(dfs,状压dp

洛谷 P1433 吃奶酪(dfs,状压dp洛谷 P1433 吃奶酪用状压dp的思想来优化dfs…思路:观察数据,15个奶酪!这数据并不大,根据题意,老鼠走的路径是无后效性的,只要经过的点一致,所在的点也一致,接下来所要走的路径就是等价的所以可以用一个二进制数来记录走过的点,另一个数记录老鼠所在的点,如果之后搜到的答案比这个点要大,就不继续搜即可如果不减枝硬搜的话会T!完整代码:#include <iostream>#include <algorithm>#incl

2020-08-07 15:36:55 331

原创 洛谷 P2895 [USACO08FEB]Meteor Shower S(bfs

洛谷 P2895 [USACO08FEB]Meteor Shower S(bfs洛谷 P2895介绍坑点:1.坐标不能低于0,但可以超300!2.流星定时砸下;3.流星砸下时间已最早的那个为准!4.如果出不去还要输出-1!首先,是一道明显的bfs题,要求最短时间,所以用队列记录;用结构体记录:坐标x,y砸下的最早时间搜索时经过该点的时间flag记录是否搜过终止条件:如果搜到一个点永远不会被陨石砸到,输出该点时间,或者直到搜索结束也没有出去,输出-1typedef stru

2020-08-04 13:40:18 188

原创 洛谷 P1443 马的遍历(dfs,bfs,设阈值,减枝

洛谷 P1443 马的遍历(dfs,bfs,设阈值,减枝洛谷 P1443 马的遍历我们都知道dfs是一条路搜到黑,所以不可以保证最开始搜到的就是最近点。也就是说,我们在遍历的过程中,结果是在不断更新的。那么就是说我们把马所有可能走的路径全都搜索了一遍,有很多搜索都是累赘的。dfs的优化:如果一个点已经搜过,且之前的值比新值小,则结束。然后不出意料地TLE了~~再次优化,设置阈值,步数如果超过200就结束。DFS全代码奉上:#include <iostream>#include

2020-08-02 13:21:40 602

原创 洛谷 P2392 kkksc03考前临时抱佛脚(dfs,排序优化

洛谷 P2392 kkksc03考前临时抱佛脚(dfs,排序优化洛谷 P2392 kkksc03考前临时抱佛脚这题dalao用dp,本蒟蒻只会搜索/哭对于每一科,只要找到任意个习题册,使其所耗费的时间大于等于总时间的一半,这些任意个习题册所花费的最小时间就是该科的最小时间。也就是在m个习题册中搜n个习题册~写一个很简单的dfsvoid dfs(int s,int n,int m){//s为和,n为当前位置,m为总位置 if(n==m) return;//到了最后一个 if(fl

2020-08-01 11:51:18 523

原创 洛谷P1219 [USACO1.5]八皇后 Checker Challenge(dfs,减枝

开O(2)优化后擦边边AC。。真是惊险刺激呢搜索过程中,如果在两条斜边上有棋子,返回。如果搜到底了,输出每一个棋子的位置,方案数加一并返回。否则,对下一层的每一个格子,如果在该列没有被搜过,标记,搜,还原。 for(a=1;a<=n;a++){ if(k[a]==0) { k[a]=1; vis[x + 1][a] = 1; dfs(x + 1, a); vis[x + 1][.

2020-07-31 18:47:30 121

原创 洛谷 P1983 车站分级(图论,dfs

洛谷 P1983 车站分级(图论,dfs本蒟蒻认为这道题的难点在于:如何根据题意得到给出的节点之间的大小关系。这样就可以建一个有向无环图,其中最长路的长度就是最小级。dalao们拓扑排序通过“简单的递推”得到每个车站的等级。。俺不会。。wuwuwu~~~洛谷 P1983 车站分级题目描述一条单向的铁路线上,依次有编号为 1,2,…,n的 n个火车站。每个火车站都有一个级别,最低为 1 级。现有若干趟车次在这条线路上行驶,每一趟都满足如下要求:如果这趟车次停靠了火车站 x,则始发站、终点站

2020-07-30 18:45:00 190

原创 洛谷P1347 排序(图论,拓扑排序

洛谷P1347 排序(图论,拓扑排序蒟蒻觉得这题巨难!!!暴风哭泣.jpgwu~~~~在这题之前先看一下什么是拓扑排序:以下引自dalao的博客:在一个有向图中,对所有的节点进行排序,要求没有一个节点指向它前面的节点。先统计所有节点的入度,对于入度为0的节点就可以分离出来,然后把这个节点指向的节点的入度减一。一直做改操作,直到所有的节点都被分离出来。如果最后不存在入度为0的节点,那就说明有环,不存在拓扑排序,也就是很多题目的无解的情况。以下代码时间复杂度O(V+E)。

2020-07-29 17:29:22 324

原创 洛谷 P2853 [USACO06DEC]Cow Picnic S(dfs+减枝

洛谷 P2853 [USACO06DEC]Cow Picnic S(dfs+减枝题目链接题目描述The cows are having a picnic! Each of Farmer John’s K (1 ≤ K ≤ 100) cows is grazing in one of N (1 ≤ N ≤ 1,000) pastures, conveniently numbered 1…N. The pastures are connected by M (1 ≤ M ≤ 10,000) one-way

2020-07-25 23:03:36 220

原创 洛谷 P1127 词链(dfs搜索,map选起点,减枝

洛谷 P1127 词链(dfs搜索,map选起点,减枝题目链接题目描述:如果单词X的末字母与单词Y的首字母相同,则X与Y可以相连成X.Y。(注意:X、Y之间是英文的句号“.”)。例如,单词dog与单词gopher,则dog与gopher可以相连成dog.gopher。另外还有一些例子:dog.gophergopher.ratrat.tigeraloha.alohaarachnid.dog连接成的词可以与其他单词相连,组成更长的词链,例如:aloha.arachnid.dog.gophe

2020-07-25 22:55:40 263

原创 洛谷 P4017 最大食物链计数(图论,dfs,记忆性搜索

洛谷 P4017 最大食物链计数(图论,dfs,记忆性搜索原题戳这题目背景你知道食物链吗?Delia 生物考试的时候,数食物链条数的题目全都错了,因为她总是重复数了几条或漏掉了几条。于是她来就来求助你,然而你也不会啊!写一个程序来帮帮她吧。题目描述给你一个食物网,你要求出这个食物网中最大食物链的数量。(这里的“最大食物链”,指的是生物学意义上的食物链,即最左端是不会捕食其他生物的生产者,最右端是不会被其他生物捕食的消费者。)Delia 非常急,所以你只有 1 秒的时间。由于这个结果可能过大,

2020-07-22 18:17:39 382

原创 洛谷 P5318 【深基18.例3】查找文献(dfs bfs 板子题,同时用了unordered_map可以hash查找

题目描述原题戳这 冲冲冲小K 喜欢翻看洛谷博客获取知识。每篇文章可能会有若干个(也有可能没有)参考文献的链接指向别的博客文章。小K 求知欲旺盛,如果他看了某篇文章,那么他一定会去看这篇文章的参考文献(如果他之前已经看过这篇参考文献的话就不用再看它了)。假设洛谷博客里面一共有 n(n≤10^5) 篇文章(编号为 1 到 n)以及 m(m≤10^6) 条参考文献引用关系。目前小 K 已经打开了编号为 1 的一篇文章,请帮助小 K 设计一种方法,使小 K 可以不重复、不遗漏的看完所有他能看到的文章。这边是

2020-07-22 11:24:49 302

原创 洛谷 P3916 图的遍历(vector存图,反向建边,dfs

洛谷 P3916 图的遍历(vector存图,反向建边,dfs传送门戳这儿题目描述给出N个点,MMM条边的有向图,对于每个点v,求A(v)表示从点v出发,能到达的编号最大的点。输入格式第1 行,2 个整数N,M。接下来M行,每行2个整数Ui,Vi,表示边(Ui,Vi)。点用1,2,⋯ ,N编号。输出格式N 个整数A(1),A(2),⋯ ,A(N)。输入输出样例输入 #14 31 22 44 3输出 #14 4 3 4说明/提示• 对于60% 的数据,1≤N.M≤10^3;

2020-07-22 11:23:20 374

空空如也

空空如也

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

TA关注的人

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