自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++ Prime Plus笔记

2022-06-03 10:21:19 290 1

原创 安阳工学院ACM历史(续)

2022年4月9日,第十三届蓝桥杯省赛在计算机科学与信息工程学院实验中心成功举办。ACM实验室成员获奖名单如下:一等奖:贾志卓 周雪婷 刘浩林 刘曼 张振华 彭琪峰 楚燎原 尚鑫丽 杨毅 许兴旺 张意恒 陈春明王鹏威 张伟豪 郑燕赛 任红尘 谢肖剑 李江涛 鲍小佳 王新龙 唐龙 苏州 李学锴二等奖赵俊豪 杨程程 石一昊 郭雨 袁林青 张哲 赵文豪 邵舟 王召阳 朱富豪 梅亚斌 邵光耀 耿林兵代志毅 马力 徐京 三等奖雷依晴 马中冯 卢佩恩 郭绍杰 顾正权 王诗雨 王家豪

2022-05-20 09:33:16 1129

原创 不用哈希而用容器(Acwing4398)

Acing4398题目描述:样例输入:5.aa.aaaaaa10.aaa.aa...aaa.aa..aa..样例输出:2 a.5 aaa2 aaa1 .a1 a.0 -1 aaa0 -0 -0 -题解:——暴力即可,预处理所有的子串,用 map 容器计数,O(1)查询。注意每一个字符串拆出的子串,若相同个数不止一个,算一个。——该题用哈希,超时,因为没有预处理出子串的个数,每次查询都要重算子串个数,大大浪费时间。代码:#incl

2022-04-16 09:03:19 206

原创 [NOI2002]Robot(欧拉函数+DP)

计蒜客之提交链接题意:——默认你已仔细阅读过题干,并且了解欧拉函数。简化版题意:——题目已给出 m 的质因数分解式,找 m 的所有约数,约数可分为3类(政客,军人,学者),每个约数只能代表三者其一。即:所以政客+所有军人+所有学者==m的所有约数。注意:所有约数中不包括1,因为 1 不属于三者中任意一个。——所求:所有政客的独立数之和,所有军人的独立数之和,所有学者的独立数之和。质因数分解式就是找约数使用的。注释:独立数:x 的独立数:就是 x 的欧拉函数值。政客:能分解成偶数个不同

2022-04-07 11:44:45 819 1

原创 单个欧拉值模板,欧拉函数打表模板,素数和欧拉一起打表模板

计蒜客之例题1题解:——t 小 n 大,适合用单个求欧拉值模板代码:#include<bits/stdc++.h>using namespace std;typedef long long ll;ll phi(ll n){ ll i,rea=n; for(i=2;i*i<=n;i++) { if(n%i==0) { rea=rea-rea/i; while(n%i==0) n/=i; } } if(n>1) rea=rea

2022-04-05 17:50:32 1239

原创 被袭击的村庄(计蒜客)

题目链接代码:#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=1010;ll s[N][N],f[N][N],e[N][N];ll to[8][2]={{0,1},{1,0},{0,-1},{-1,0},{1,1},{1,-1},{-1,1},{-1,-1}};int main(){ ll n,m,a,b,c,k,w,q,i,j,id,x,y,u1,d1,l1,r1,o,

2022-04-04 19:11:10 488

原创 如何判断大数能否被整除(拓展)

例题链接——切记:不要去想是否做过类似题,那样易导致思维混乱。无论遇到什么样的题,都是由基础变化而来,所以如何把题倒回去才是最重要的。题解:不管是26进制还是10进制数,计算方法是一样的例如:954(26进制)=9*26^2+5*26+4954(10进制)=9*10^2+5*10+4如果是x进制,只需要预处理一个x的幂数即可。所以是几进制无所谓。重点:交换后如何快速得到一个新数,重新来一遍循环太浪费时间,O(1)的时间其实就可以做到。举个例子:954%3【954是一个十进制数,为了

2022-04-04 18:41:11 1934

原创 小技巧:从地图的某点传送到某点

代码:#include<bits/stdc++.h>using namespace std;const int N=1010;char e[N][N];int vx[N][N],vy[N][N],book[N][N];int to[4][2]={0,1,0,-1,1,0,-1,0};int n,m,st,et;struct Node{ int x,y,s;};int bfs(int x,int y){ int gx,gy,flag,tx,ty,i; queue<

2022-04-04 17:07:09 448

原创 堆优化Dijkstra()算法+spfa算法(模板)

题目链接题意:T组样例n个顶点,m条单向边m行 ui,vi,wi.求源点1到其它点来回最短路最后输出所有来回最短路相加之和0<n≤20000,m≤60000,1≤T≤10,0≤ci​≤10^9,1≤ui​,vi,wi​≤n题解:单源最短路,且边权值为正数,n数据太大,邻接表存图。解法1:spfa算法解法2:堆优化Dijkstra()算法如何实现堆优化:不同结构体,用pair容器,pair可以放两个元素,相当于一个结构体,然后优先队列自动从小到大排序,排序先按pair中第一

2022-04-03 20:54:40 1221

原创 从Bellman_Ford到spfa(Bellman_Ford的队列优化)

题目链接代码1(超时):Bellman_Ford原始算法#include<bits/stdc++.h>using namespace std;const int N=20020;const int M=200020;const int INF=0x3f3f3f3f;int u[M],v[M],w[M];//边的信息 int dis[N];//源点到别的点最短路int n,m;void Bellman_Ford(){ memset(dis,INF,sizeof(dis))

2022-04-03 18:37:02 186

原创 二分查找(只记一个模板)

注意:数组元素都是从下标1开始的。计蒜客二分查找之例题1——查询整数 x 是否在数组 A 中,存在,输出YES;不存在,输出NO//tmp所指的为下标,范围[1,n]int B_S(int x){ int low=1,high=n,tmp=low,mid; while(low<=high) { mid=(low+high)/2; if(a[mid]<=x) { tmp=mid; low=mid+1; } else high=mid-1;

2022-03-31 18:04:15 504

原创 Infinite Maze CodeForces - 197D(bfs)

vjudge提交链接题意:给你一张 n * m的地图,S表示起点,#表示墙, . 表示空地。现在要把该平面扩大,无休止的复制该地图,把该平面堆的无限大。现在问的能否从起点S永无止境的走下去。思路:虽然地图变大了,但任意一点所表示的字符都可知晓。即点( i , j ) 与 ( ( i % n + n ) % n , ( ( j % m + m ) % m )【原地图】这里 i 和 j 可能为正,可能为负数,因为地图被无限放大了。无限大平面由许多个 n * m 拼接而成,因此设地图1号,地图

2022-03-15 21:50:36 236

转载 强大文本编辑器Gedit之Windows版(gedit下载教程)

Bilibili视频下载教程64位下载地址,下载后缀.msi

2022-03-08 21:52:42 4115 2

原创 Windows系统利用zip命令压缩文件夹

执行的操作:——将C盘下的Code文件夹(已存在)压缩到到E盘的fuben文件夹(存在不存在都可以)中,压缩包的名称以当前时间命名。存在疑惑:命令行应该是压缩Code文件夹中的My文件夹,但最终显示是压缩了Code文件夹Python命令行:import osimport time#文件夹不要带空格#书上这种写法source=['"C:\\My Documents"','C:\\Code'],我没搞成功source='C:\\Code\\My'target_dir='E:\\fuben

2022-03-07 09:38:59 4964

原创 求1e8以为素数的个数【埃氏筛,线性筛(欧拉筛),埃氏筛升级版】

1e6 784981e7 6645791e8 5761455 埃氏筛(慢)#include<bits/stdc++.h>using namespace std;const int MAXN=1e8;int prime[MAXN+1],book[MAXN+1],cnt;void getPrime(){ cnt=0; memset(book,0,sizeof(book)); book[0]=book[1]=1; int i,j; for(i=

2022-03-02 20:14:31 923

原创 堆排序(啊哈算法版)

题意:——给出n个数,从小到大排序。前提知识:——了解什么是树,什么是二叉树,什么是完全二叉树,以及特点最小堆:堆顶是最小值,一般放于数组的第一个位置,但是构建完最小堆后不能保证数据一定是按从小到大放置。最小堆定义:在一棵完全二叉树中,所有的父结点都比子结点要小。这里未强调左右子结点谁大谁小,请看第二个图(最小堆)便可明白。堆排序思想:以该数据为例:构建最小堆1499 5 36 7 22 17 46 12 2 19 25 28 1 92构建一个完全二叉树显而易见,此刻堆顶并不是

2022-03-01 14:18:47 602

原创 归并排序(先归并再快排)

题意:——给出n个数,从小到大输出思想:与快速排序区别是:快速排序:先大区间排序,然后细化到小区间排序,最后区间长度为1时,顺序排好。归并排序:先从小区间排序,然后扩大到大区间排序。代码:#include<bits/stdc++.h>using namespace std;const int maxn=500005;int a[maxn],b[maxn];void Merge(int low,int mid,int high){ int i=low,j=mid+1,

2022-02-26 19:48:02 281

原创 快速排序(先归并再快排)

题目:——给出n个数,从小到大排序,并输出牛客例题1牛客例题2Acwing例题3(此例题下面代码超时,该题需付费可做,最下面会提供可过代码)啊哈一书快排思想:二分思想:先对大区间进行排序,并不是真正意义上的排好序:1. 以大区间第一个数为哨兵,实现以下操作: a. 比它小的通通放到左边,比它大的通通放到右边 b. 并不要求哨兵的左右各部分必须是有序的 如何实现操作a,遍历交换即可 c. 需要两个指针i,j,最初指向区间的最左、最右端 让 j 从位置 j 往左找,找到比哨兵

2022-02-26 11:47:20 82

原创 桶排序(简单思想)

题意: 给出n个数,将这n个数从小到大排序。输入: 4 2 2 1 5 [不大于10]输出: 1 2 2 5桶排序思想:拿这个例题来讲:拿出11个桶,依次排开,对桶编号0~10把每个数丢进相应的桶里面依次输出即可。代码:#include<stdio.h>#include<string.h>int a[11];int main(){ memset(a,0,sizeof(a)); int n,x;scanf("%d",&a

2022-02-25 21:51:14 206

转载 互联网+商业计划书(杂乱)

链接:https://pan.baidu.com/s/19ls_Lsrf5o5hXRNJBR8GPQ 提取码:roh6有需要的自取吧

2021-12-06 19:28:37 191

原创 jdk1.8 安装、环境变量配置、删除(windows)

注意1: jdk1.8 和 jdk8 是一个意思,虽已更新到 jdk17,建议下载并安装jdk8 原因:大多数人都安装的jdk8,有问题也容易解决,当然安装哪个理论上都没问题 注意2: 虽然下述操作是在win7上面弄的,但win10依旧适用。 不同的是:控制面板、高级系统设置在电脑的位置不同了。jdk下载与安装教程,请点击该博客 注意2: 上述博文并没有提供jdk的安装包,官网下载需要注册登录。 我就是注册登录下载的,放心没啥问题。 如果实在不想注册下载的话,点击下面的百度网盘.

2021-11-28 13:26:39 1188

转载 收集金币(简单dp)

思路:dp转载大佬思路代码:#include<bits/stdc++.h>using namespace std;const int N=20010;int a[N],f[N][2];int main(){ int T;scanf("%d",&T); while(T--) { int n;scanf("%d",&n); char s[5];int x; for(int i=1;i<=n;i++) { scanf("%s %d".

2021-11-25 22:03:06 361

转载 Scholomance Academy

牛客提交链接大佬博客对大佬代码的理解:当θ为无穷大时,坐标恰好是(0,0)当θ为无穷小时,坐标恰好是(1,1)一定要注意:tn+fp是定值1,tp+fn是定值2,初始:fp=0,tn=定值1 tp=定值2,fn=0 fpr(x轴):fp/(tn+fp) tpr(y轴):tp/(tp+fn) 很明显:随着θ的不断的减小,fpr和tpr都在不断增大最后得到的8个点就在(0,0)和(1,1)之间并且一个每次只增加x或y中的其中一个 ...

2021-11-18 21:33:29 141

转载 牛客xiao白月赛40题解

官方题解:ssllyf大佬题解:lahlah大佬题解:题目链接:ps:大部分题的数据都不大,可暴力。A题:暴力模拟(按题意说的)B题:简单区间dp(我对dp很懵)或者记忆化搜索C题:暴力(先分析好题意,再暴力干)D题:签到E题:简单二分F题:bfs+邻接表(暴力)G题:简单思维题(想通了变好做)H题:思维题(暴力)I题:全排列(模拟)个人感觉:这次的题出的很好,全是基础题。考的基本上就是思维暴力。从易到难(个人感觉):D、A、I、E、C、F、G、H、B(不喜欢考思维)

2021-11-06 17:46:20 133

原创 列车调度(贪心思想+二分查找)

列车调度火车站的列车调度铁轨的结构如下图所示。这里写图片描述两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道。每趟列车从入口可以选择任意一条轨道进入,最后从出口离开。在图中有9趟列车,在入口处按照{8,4,2,5,3,9,1,6,7}的顺序排队等待进入。如果要求它们必须按序号递减的顺序从出口离开,则至少需要多少条平行铁轨用于调度?输入格式:输入第一行给出一个整数N (2 ≤ N ≤10​5​​),下一行给出从1到N的整数序号的一个重排列。数字间以空格分

2021-11-03 19:52:26 122

转载 牛客xiao白月赛39题解

比赛链接官方题解+视频本人小记+代码:A题:向量平行条件:斜率相同或者相反:只有交叉相乘相等,没有交叉相乘等于相反数。#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;typedef long long ll;int xx[10100],yy[10100];int main(){ int n,flag=0; int x1,y1,x2,y2; sc

2021-10-29 16:31:17 105

转载 信号传输(简单dp+二分)

大佬解析我的代码:(未测试)#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=2e5+110; ll a[N],dp[N],n,w;bool ok(ll x){ memset(dp,0,sizeof(dp)); for(int i=1;i<=n;i++) { dp[i]=dp[i-1];//不选择第i个城市建基站 //选择第i个城市建基站 if(i-x

2021-10-29 15:56:20 126

原创 求导(模拟)

思路:每一段都可看成 +/- ax^b正负号单独看四种情况:ax^baxxa该项输出不输出就看a,b的值只有a == 0 || b == 0 时不输出,其它情况下都输出PS:数据卡int代码:(没测试过)#include<bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=1e6+110;char s[maxn];int main(){ scanf("%s",s+1);.

2021-10-29 15:05:04 77

原创 AcWing906区间分组

AcWing906区间分组代码:#include<bits/stdc++.h>using namespace std;const int maxn=1e5+110;struct Node{ int l,r; bool operator<(const Node &W)const { return l<W.l; }}q[maxn];int main(){ int n;scanf("%d",&n); for(int i=1;i<=n

2021-10-29 11:25:23 98

转载 关于安阳工学院ACM实验室纳新问题解答

首先,欢迎大家来到安阳工学院计算机学院,相信很多新生刚来到大学,面对各种各样的实验室,学生会纳新都是一头雾水,对心仪的实验室或学生会都会有很多疑问,想去加入,又担心自己不能满足纳新要求,或者担心加入进去之后发现和自己想象的有所出入等各种各样的问题而踌躇不定。下面就来详细的介绍一下我们ACM实验室和解答一些新生可能会遇到的一些问题。ACM实验室ACM实验室2012年在马宝琰学长的带领下正式创建,从曾经的几个人到现在的几十人,每一年ACM实验室都在发展都在进步,ACM历届发展进步和取得的成就详见  每年参

2021-10-20 09:17:04 1115

转载 GCD Game(HDU-7061)【博弈论-Nim-质因数应用-质因数个数预处理】

标题:GCD Game--------------------------------------------------------------------------------------------vjudge提交链接题解:大佬链接:Viktoriae代码:#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;const int N=1e7;bool

2021-08-12 21:06:03 149

原创 Ink on paper(HDU-7058)【最小生成树,小心超时】

标题:Ink on papervjudge提交链接题意:——易理解,略。官方题解:——一道简单的最小生成树题,题面可以转化成在一个完全图上求最小生成树,直接使用Prim解决,复杂度n*n。常数较好的kruskal也可以通过,注意排序要写在结构体里面,写到外面超时。代码:(Kruskal)...

2021-08-12 20:53:23 821

原创 做过的例题吧

以下皆是vjudge网站上所做POJ - 2236UVA - 10099POJ - 1611(个体数量)UVA - 11987(删除操作)HDU - 1272(小希的迷宫) POJ - 1182(食物链 )

2021-08-02 18:01:05 125

转载 求逆元的一点理解(不了解逆元为何能解决除法取模问题)

/ * 以下皆是关于模板的理解,数学证明略 * /一、 逆元的用处:求(a / b)% p运算符 (加 、减 、 乘 ) 可以利用分配律来求解。但除法却不可以。——逆元的作用:可把除法转化为乘法。简单理解:就是求b的倒数,但1 / b 显然是小数,不是想要的结果,想办法变为整数,即求b关于p的逆元。——现在只看 b 和 p,跟 a 没关系。什么情况下才可以 b 关于 p 求逆元呢?——只有当gcd(b,p)==1时,逆元才存在。咋求:第一种情况(特例):p是质数。费马小定理:逆元

2021-08-01 10:39:33 510

原创 邻接表笔记

题目:ROADSvjudge提交链接题意:有n个点(编号为1,2,3…n),有m条单向路,每条路有相应的长度l,以及每条路的过路费t一个人要从1号点走到n号点,问在不超过花费mo的情况下最短路是多少。思路:利用邻接表去存每条边的信息然后利用dfs暴搜即可。构建邻接表:add(ss,dd,ll,tt);邻接表函数:void add(int x,int y,int ll,int tt){ nx[head]=first[x]; first[x]=head; l[head]=ll;

2021-07-25 20:22:12 183

原创 Sticks (UVA - 307)(dfs+剪枝)

题目:Sticks题意:一大堆相同长度的木棍被随意切割成n份小木棍,现想要再次拼接成一大堆相同长度的木棍,求原始最短木棍的可能长度.思路:从小到大依次枚举所有的可能长度len,第一次找到可拼接成的len就是答案.当打算把所有小木棍拼接成一大堆长度为len木棍时,需要木棍之间进行组合,不能确定谁和谁属于一根的,因此需要用到dfs算法,当发现此刻拼接的不对时,可以进行回溯,返回到上一步.剪枝(优化):优化1:对小木棍进行从大到小排序.原因:在选择木棍拼接时,原则上只要不超过假定的长度l

2021-07-25 11:27:54 259

原创 Stacks HDU - 6947(不是很理解,用邻接表解决)

转载:https://blog.csdn.net/yueshehanjiang/article/details/117717599题目:Stacksvjudge提交链接题意:有n个栈,编号从1到n,初始栈内只有元素 i ,现给出m条操作,每条操作a,b,a,b表示栈a中元素放入到栈b中(先进后出原则).最后输出每个站内元素数量和元素(从顶到底输出).题解:n,m范围1e5,模拟过程必定超时.代码:#include<stdio.h>#include<string.h&

2021-07-21 16:55:33 183

原创 Substring HDU - 6948(双指针)

题目:Substringvjudge提交链接题意:给出一个字符串,仅包含小写字母,找出一段最长的连续字串,该字串内的字符出现次数不超过k次题解:双指针,设两个变量i,j用来定义首尾.代码:#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;const int N=4*1e5+110;char a[N];int b[220]; int main()

2021-07-21 16:03:18 138

原创 KD-Graph HDU - 6958(多校第一场)

题目:KD-Graphvjudge提交链接题意:n个顶点,给出m条边的信息。现在问是否存在一个最小的D值恰好使原图变为k个连通的部分。如何通过改变D值使原本不是k个连通的部分变为k个连通部分呢。因为题目中给出了点与点连通的定义。若顶点p和q (p≠q)连通,则p和q之间必须至少有一条路径满足这条路径的最大值小于或等于D。若点p和q (p≠q)在不同的组中,则p和q之间不可能有任何路径满足这条路径的最大值小于或等于D看样例说问题吧。样例1的图:...

2021-07-21 09:51:57 185

原创 Codeforces Round #725 (Div. 3) A~C,F题

Codeforces提交链接A:Stone Game题意:n块石头,排成一行,每块石头拥有不同的重量。你的任务就是:摧毁当中最轻和最重的那两块石头摧毁规则:只能摧毁最左面和最右边的石头。注意:被摧毁的石头就代表消失。问最少摧毁几块石头可完成任务。题解:找出重量最大和最小的下标。分三种情况考虑:1.要么从左到右进行摧毁。2.要么从右至左进行摧毁。3.要么两边进行摧毁。三种情况取最小即为答案。代码:#include<stdio.h>#include<stri

2021-06-23 20:52:58 85 2

空空如也

空空如也

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

TA关注的人

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