- 博客(18)
- 收藏
- 关注
原创 最小生成树MST【模板】 【kruskal】
算法思想或步骤:1.将图中的边按照从小到大排序.2.按照权值从小到大依次选边。如果当前选取的边使边形成了圈,则舍弃;否则标记当前边并计数。(利用并查集判断是否会形成环)3.重复(2)的操作,直到生成树包含n-1条边;否则无法形成最小生成树。代码:#include <iostream>#include <algorithm>using namespace std;const int N=5010,M=10010;int n,m,f[N],ans=0;struct
2021-09-08 12:07:23 176
原创 NCST集训队排位赛(2021-04-25)
A、Sum of 2050来源:https://codeforces.com/problemset/problem/1517/A标签:【思维】【简单】难度:★☆☆☆☆题目简述如果一个数是2050*10k(k>=1),则把它称为2050-number,输入一个数n,判断是否为一或多个2050-number相加组成。如果是,输出最少由多少个2050-number组成,否则输出-1。InputT:测试组数。每组测试输入一个n:需要进行判断的数(1<=n<=1018)。Outpu
2021-07-09 16:00:09 233
原创 Dijkstra【模板】【邻接表+优先队列】
**时间复杂度:**O((n+m)logm)#include <iostream>#include <queue>#include <cstring>using namespace std;#define MP make_pairconst int N=100010,M=200010;const int inf=0x7fffffff;int fr[N],nex[N],dis[N];//邻接表结点数组和距离数组,dis[i]表示源点到i点距离。int v
2021-07-09 15:50:43 256
原创 快速幂+矩阵快速幂【模板】
一、快速幂标题算法思想或步骤:将阶数b转换为二进制,从后往前取每一位,如果是1就改变res, 其中,res表示有选择的乘以底数a的自乘(a, a^2 , a^4, a^8,…)。第1次,第2次,第3次,第4次…判断b的末尾位是否为1,为1就res=res*a,否则res不变;而a始终在自乘变化。最后返回res%mod,就是 (a^b)%mod.代码:long long ksm(long long a,long long b,int mod){ long long res=1; while(b)
2021-07-09 15:48:57 134
原创 BFS+DFS题目
BFS 红黑瓷砖#include <iostream>#include <algorithm>#include <queue>using namespace std;#define check(x,y) (x<Wx && x>=0 && y>=0 && y<Hy)char room[23][23];int dir[4][2]={{-1,0},{0,-1},{1,0},{0,1}};in
2021-04-14 09:18:55 204
原创 【筛法,思维,数学】牛客比赛NC210203I 牛牛的质因数
链接:https://ac.nowcoder.com/acm/contest/9982/I来源:牛客网一、题目简介牛牛最近对于质因数分解产生了浓厚的兴趣。牛牛定义了一个函数F(x),它表示将x做质因数分解后得到的数字从小到大升序排列,然后将其“拼接”成一个大整数。例如1500=22355*5,F(1500)=223555。牛牛现在想要知道∑ F(i)的值。由于这个结果非常大,所以你只用告诉牛牛最终答案对10^9+7取余数的结果即可。输入描述:仅一行一个正整数n(2≤n≤4×10^6)输出
2021-02-13 22:20:14 170
原创 【并查集】牛客比赛NC20210205G 糖果
/*链接:https://ac.nowcoder.com/acm/contest/9983/G来源:牛客网在一个幼儿园里面有n个小朋友,分别编号1,2,…,n。在这些小朋友中有一些小朋友互为朋友关系,总共有m对朋友。作为幼儿园老师,你想买一些糖果分给小朋友,你知道第i个小朋友想要至少a_{i}个糖果,否则他就会不开心。同时,如果一个小朋友得到的糖果数小于他某个朋友得到的糖果数,他也会不开心。请问你最少买多少糖果才能保证每个小朋友都不会不开心呢?输入描述:第一行以空格分隔的两个整数n,m。第二
2021-02-13 21:39:47 172
原创 NCST第五次蓝桥杯训练赛题解
A、区间和题目描述Description金金最喜欢做有挑战的事情了,比如说求区间最大子段和。一开始,金金有n个数,第i个数字是ai。金金又找来了一个新的数字P,并想将这n个数字中恰好一个数字替换成P。要求替换后的最大子段和尽可能大。金金知道这个题目仍然很简单,所以如果你做不出来,金金就要和你谈一谈了。注:最大子段和是指在n个数中选择一段区间[L,R](L<=R)使得这段区间对应的数字之和最大。Input第一行两个数n,P。接下来一行n个数a[i]。Output一个数表示答案。
2021-01-27 17:39:31 586
原创 【动态规划】牛客NC20035打鼹鼠
一、题目描述鼹鼠是一种很喜欢挖洞的动物,但每过一定的时间,它还是喜欢把头探出到地面上来透透气的。根据这个特点阿Q编写了一个打鼹鼠的游戏:在一个nxn的网格中,在某些时刻鼹鼠会在某一个网格探出头来透透气。你可以控制一个机器人来打鼹鼠,如果i时刻鼹鼠在某个网格中出现,而机器人也处于同一网格的话,那么这个鼹鼠就会被机器人打死。而机器人每一时刻只能够移动一格或停留在原地不动。机器人的移动是指从当前所处的网格移向相邻的网格,即从坐标为(i,j)的网格移向(i-1, j),(i+1, j),(i,j-1),(i,
2021-01-26 22:56:48 170
原创 NCSTOJ:【变形Catlan数】圆弦
一、题目描述:【问题描述】 圆周上有N个点。连接任意多条(可能是0条)不相交的弦(共用端点也算相交)共有多少种方案? 例如:n =4时,f(n)=9。方案如图输入:文件只有一行为一个正整数n输出:输出文件只有一个整数,方案数(由于结果可能很大,你只需要输出这个答案mod 12345的值。)Sample Input4Sample Output9More Info数据规模:1<=N<=1000二、代码:#include <iostream>type
2021-01-25 14:17:21 429 1
原创 NCSTOJ:【Catlan数】上甘岭
一、题目描述:没有一个地方比“上甘岭”更让中国人念念不忘,因为没有一场战役比“上甘岭战役”更能诠释中国人的民族精神。在上甘岭战役中,美军面对我军顽强的抵抗偷偷的往山上挖了一条隧道,但是我军潜伏在美军中的情报员窃取了这条情报。已知这条坑道的两端(分别被志愿军和美军控制)一次只能进去一人。由于志愿军众志成城,只要我军在坑道里的人数大于等于美军的人数我军就能获得坑道的控制权(不考虑人员伤亡)。由于我军情报员出色的侦查能力,我军获取美军的进攻计划(何时派出士兵进入),已知两方均有n名士兵要进入坑道,问在保证我军
2021-01-25 14:09:58 135
原创 hdu1263水果
题目详情:使用二重Map能够快速解决。代码:#include <iostream>#include <algorithm>#include <map>#include <string>using namespace std;int t,n,m;string s1,s2;int main(){ cin>>t; while(t--){ cin>>n; map<strin
2021-01-17 21:21:55 119
原创 2021-01-11----随笔001
最近要训练C++的STL相关内容,于是就尝试整理一下笔记,其实早就想捋一下这玩意了,毕竟每次用到不熟悉的都上网搜太麻烦了。去了https://en.cppreference.com/w/,英文翻译太麻烦了,也在CSDN上找了博客,找了一个还算不错的磊磊cpp,也在书上和微信公众号找了相关内容,浪费了一天构思该如何开始写。本来寒假任务就多,想着干脆写一步看一步,却在一个公众号上看到了几个大佬的文章,再结合自己现在的情况,有感而发,写下了这篇博客。地理信息科学,一个在我报考它前根本听都没听说过的专业,当初想着
2021-01-11 17:39:45 123
原创 hdu1016素数环问题
Problem DescriptionA ring is compose of n circles as shown in diagram. Put natural number 1, 2, …, n into each circle separately, and the sum of numbers in two adjacent circles should be a prime.Note: the number of first circle should always be 1.Input
2021-01-08 17:51:17 224
原创 N皇后问题及答案解
题目在一张N∗N的国际象棋棋盘上,放置N个皇后,使得所有皇后都无法互相直接攻击得到,(皇后可以直接攻击到她所在的横行,竖列,斜方向上的棋子),现在输入一个整数N,表示在N∗N的棋盘上放N个皇后,请输出共有多少种使得所有皇后都无法互相直接攻击得到的方案数。 例如下面这样的摆法,是4皇后的一个解 (1代表有皇后,0代表没有)0 1 0 00 0 0 11 0 0 00 0 1 0输入一个整数N,代表皇后的个数输出输出方案数样例输入样例输入14样例输入28样例输出样例输出12样
2021-01-07 23:03:25 12767 1
原创 NCSTOJ:【动态规划】LIS最长上升子序列(1<=n<=10^5)
题目描述:题目链接:最长上升子序列Description给定一长度为n的数列,数列中的每个数都在1~100000之间请在不改变原数列顺序的前提下,从中取出一定数量的整数(不需要连续),并使这些整数构成单调上升序列。输出这类单调上升序列的最大长度。Input输入包括两行,第一行为n,代表数列的长度。(1 ≤ n ≤ 100000)第二行为n个整数。Output输出这类单调上升序列的最大长度Sample Input53 1 5 4 6Sample Output3More Inf
2020-11-04 10:26:03 330
转载 洛谷[P1216] 数字三角形 Number Triangles
洛谷[P1216] 数字三角形 Number Triangles题目链接:数字三角形一、递归首先最容易想到的肯定是递归。#include <iostream>#include <algorithm>#define MAX 1001using namespace std;int D[MAX][MAX],n;int MaxSum(int i,int j){ if(i==n) return D[i][j]; int x=MaxSum(i
2020-09-04 18:30:04 1052 2
转载 #动态规划简介及步骤
动态规划一、算法介绍(参考百度)在现实生活中,有一类活动的过程,由于它的特殊性,可将过程分成若干个互相联系的阶段,在它的每一阶段都需要作出决策,从而使整个过程达到最好的活动效果。因此各个阶段决策的选取不能任意确定,它依赖于当前面临的状态,又影响以后的发展。当各个阶段决策确定后,就组成一个决策序列,因而也就确定了整个过程的一条活动路线.这种把一个问题看作是一个前后关联具有链状结构的多阶段过程就称为多阶段决策过程,这种问题称为多阶段决策问题。在多阶段决策问题中,各个阶段采取的决策,一般来说是与时间有关的,决
2020-08-21 10:41:21 201
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人