自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 并查集合集

1.将两个集合合并2.询问两个元素是否在一个集合之中。每一个集合用一棵树表示。树根的编号就是整个集合的编号。每个结点存储它的父节点,p[x]表示x的父节点。问题2:如何求x集合的编号:问题3:如何合并两个集合等权并查集: x的根节点将y的根结点作为父节点。左右两侧距离相等得出fx到fy距离 判断总集合个数 :例题:Codeforces-445B DZY Loves Chemistry代码如下:...

2022-07-20 09:34:43 164 1

原创 BFS&&DFS入门

一条路走到黑,当前情况无法满足题意时,返回上一层重新选择。题目:棋盘问题在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。Input输入含有多组测试数据。每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放棋子的数目。 n ...

2022-07-07 15:04:44 154

原创 学生信息管理系统

【实验时间】:2022年6月1日星期三【实验地点】:家中【实验目的】:(1)培养和锻炼对具有一定复杂度和规模的问题分析与求解能力(2)掌握程序设计的综合方法,能综合应用各种数据类型实现较为复杂数据的存储(3)培养良好的C程序设计风格与代码规范意识【实验过程】:学生成绩管理设计一个菜单驱动的学习成绩管理程序,管理n个学生3门考试科目成绩,实现以下功能:菜单形式如下:Management for Students’ scores 【实验目的】:(1)培养和锻炼对具有一定复杂度和规模的问题分析与求解能力(

2022-06-08 00:00:00 398

原创 【2048】游戏实验

2048游戏

2022-06-06 22:47:00 381

原创 520浪漫代码流星雨

520到了不知道准备点啥给女朋友好,整一手流星雨,带给她不一样的浪漫。效果如图:女朋友很是喜欢编译环境:VS2022,要带有Easyx库代码://2022.5.20 流星雨代码#include<stdio.h>#include<graphics.h>#include<time.h>#include<conio.h>#include<mmsystem.h>#pragma comment(lib,"winmm...

2022-05-20 17:47:00 9208 10

原创 bfs【走迷宫】

题目:给定一个n×m的二维整数数组,用来表示一个迷宫,数组中只包含0或1,其中0表示可以走的路,1表示不可通过的墙壁。最初,有一个人位于左上角 (1,1)处,已知该人每次可以向上、下、左、右任意一个方向移动一个位置。请问,该人从左上角移动至右下角 (n,m)处,至少需要移动多少次。数据保证 (1,1)处和 (n,m)处的数字为00,且一定至少存在一条通路。输入格式:第一行包含两个整数 n和m。接下来n行,每行包含m个整数(0或1)...

2022-05-17 18:11:27 107

原创 【dp】01背包

题目有N件物品和一个容量是V的背包。每件物品只能使用一次。第ii件物品的体积是 vi,价值是wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。接下来有N行,每行两个整数 vi,wi,用空格隔开,分别表示第 i件物品的体积和价值。输出格式输出一个整数,表示最大价值。数据范围0<N,V≤10000<N,V≤10000&l...

2022-05-12 09:56:18 68

原创 C++【快速排序】

思路:对于一组数据q[n],我们定义两指针i(初始左端点),j(初始右端点),一个基准数x(a[l],a[r],a[l+r>>1],区间内随机数 四者选一,本篇文章选用q[l])。我们先让i开始不断右移,只到遇到大于等于x的数停下。随后,j开始不断左移只到遇到小于等于x的数停下。此时i左端的区间上所有数都为小于x的数,同理j右端数都大于x。为了使i,j处也满足,当i<j时交换q[i]与q[j]。根据相对于x的大小关系,分为两个区间。按照上述思路,运用思想分治对两个区间排序代码如下

2022-05-07 16:24:55 77

原创 【离散化】区间和

题目:假定有一个无限长的数轴,数轴上每个坐标上的数都是00。现在,我们首先进行nn次操作,每次操作将某一位置xx上的数加cc。接下来,进行mm次询问,每个询问包含两个整数ll和rr,你需要求出在区间[l,r][l,r]之间的所有数的和。输入格式第一行包含两个整数n和m。接下来n行,每行包含两个整数x和c。再接下来m行,每行包含两个整数l和r。输出格式共m行,每行输出一个询问中所求的区间内数字和。数据范围−1...

2022-05-07 07:59:01 162

原创 尺取法(滑动窗口+双指针)

尺取法是一种比较基础的算法,一般用来解决具有单调性的区间问题。通常是对数组保存一对下标,即所取的区间的左右端点,然后根据实际情况不断地推进左右端点以得出答案。尺取法比直接暴力枚举区间的效率高很多,尤其是数据大的时候,所以说尺取法是一种高效的枚举区间的方法,是一种技巧,一般用于求取有一定限制的区间个数或最短的区间等等。经典例题:Poj3061Subsequence给定长度为n的数列整数a0,a1,...an-1以及整数s。求出总和不小于s的连续子序列的长度的最小值。如果不存在,则输出0。

2022-05-03 18:48:23 136

原创 C语言实验【扫雷】

源代码#include<windows.h>#include<stdio.h>#define MaxMine 10#define ROW 2+9#define COL 2+9#define N 15int flag=1;char show[N][N];int mine[N][N];void color(int m) {HANDLE consolehend;consolehend = GetStdHandle(STD_OUTPUT_HANDLE);S.

2022-05-01 08:26:53 94

原创 P2564 [SCOI2009]生日礼物 题解

题目链接:https://www.luogu.com.cn/problem/P2564大致思路:首先,我们构建一个结构体,将所有的珠子的位置以及种类信息存储进去。接着,我们按照位置从小到大的顺序将珠子排序。然后,运用尺取法,使我们的结果最优。本题的关键部分://运用尺取法取最优值int l = 0, r = 0, len = 0x3f3f3f3f; while (l < n && r < n) { //对于每一个珠子,将其对应种类个数加一

2022-04-30 14:01:59 139

原创 C 语言跳动的心(可变色版本)

语言:C语言代码效果:一颗不断跳动的会变色的心#include <stdio.h>#include <math.h>#include <windows.h>#include <tchar.h>float f(float x, float y, float z) {float a = x * x + 9.0f / 4.0f * y * y + z * z - 1;return a * a * a - x * x * z * z * z .

2022-04-17 12:04:53 24480 9

原创 c++【高精度】(更新ing)

高精度整体思路由于,我们可能遇到长度会爆掉 long long 类型的运算,为了解决这种情况,我们首先将AB两数分别逆序(便于从低位到高位运算)存入到字符串s1,s2中,接着根据不同运算的特点的进行相应计算(下文会一一说明),切记解决前导为0情况(我今天忘记这个,wa了好几次,难过了`(*>﹏<*)′....)1.高精度加法 首先,将两个加数逆序存入s1,s2中。cin>>s1>>s2; for(int i=s1.size()-1;i&gt.

2022-03-24 22:03:38 1129

原创 c++ 【STL】(更新ing)

一 . map特点:map是可将每一个元素分为key和value两部分,自带排序功能的容器(按照key大小排序),并且key具有唯一性,即一个key值在一个map容器内只能出现一次,若下次输入相同的key值,则无法插入元素进入容器内(可以用数组进行覆盖)//int,char,string 都可以为容器key,value的数据类型map<int ,int >mp;map<string,int>mp;map<char,int>mp;mp.ins

2022-03-21 20:23:39 824

原创 C++set函数用法

set为包含已排序对象的关联容器即对于set中每个元素,只包含一个关键字,并自动按照自大到小的顺序进行排序对于set,常用有以下函数: begin() 返回指向第一个元素的迭代器 clear() 清除所有元素 count() 返回某个值元素的个数 empty() 如果集合为空,返回true end()

2022-03-12 20:10:43 1908

原创 【秦九韶算法】

若有f(x)=+当我们通过暴力算出每一项(最多乘n-1次)我们可以通过提出过x优化算法效率即f(x)=代码实现如下for(int i=n-1; i>=1; i--) ans*=x,ans+=a[i];

2022-03-01 20:24:57 92

原创 【无标题】

在大一上学期刚接触C语言的时候,老师们都会举一个经典题的例子:给出一个 n 写出一个程序sum(n)=1+4+9+...+n^2但是由于这道题太过于经典了,所以某人对这道题做出了更改,更改的题面如下:给出一个未知数 x ,问是否存在n 使得 sum(n)=x, 若存在则输出“YES”,否则输出“NO”。(输出不带引号)Input第一行输入一个t。(1≤t≤10^5)接下来 tt行,每行输入一个x。(1≤x≤10^15)Output对于每个数据,输出“YES”或“N..

2022-02-28 19:32:35 194

原创 【双指针】

简单A-B描述这是一道简单题,给出一串数以及一个数字C,要求计算出所有A - B = C的数对的个数(不同位置的数字一样的数对算不同的数对)。输入输入共两行。第一行,两个整数N, C。1=<N<=2e5 , C>=1第二行,N个整数,作为要求处理的那串数。输出一行,表示该串数中包含的满足A - B =C的数对的个数。输入样例 14 11 1 2 3输出样例 13输入样例 26 11 1 1 2 2 2输出样例 29本题值得注意的是,有可能暴in

2022-02-28 19:26:22 60

原创 【二分法】查找最接近的元素

在一个非降序列中,查找与给定值最接近的元素。Input第一行包含一个整数n,为非降序列长度。1 <= n <= 100000。第二行包含n个整数,为非降序列各元素。所有元素的大小均在0-1,000,000,000之间。第三行包含一个整数m,为要询问的给定值个数。1 <= m <= 10000。接下来m行,每行一个整数,为要询问最接近元素的给定值。所有给定值的大小均在0-1,000,000,000之间。Outputm行,每行一个整数,为最接近相应给定值的元素值,保

2022-02-21 19:16:27 685

原创 【二分查找】

蒜头君手上有个长度为 nn 的数组 AA。由于数组实在太大了,所以蒜头君也不知道数组里面有什么数字,所以蒜头君会经常询问在数组 AA 中,等于 xx 的数字有多少个?输入格式第一行输入两个整数 nn 和 mm,分别表示数组的长度和查询的次数。接下来一行有 nn 个整数 a_iai​。接下来 mm 行,每行有 11 个整数 xx,表示蒜头君询问的整数。输出格式对于每次查询,输出一个整数,表示数组 AA 中有多少个 xx。数据范围1 \le n, m \le 10^5, 0 \l

2022-02-21 11:28:12 168

原创 【乘法逆元】

给定正整数 n 与 p,求 1∼n 中的所有数在模 p 意义下的乘法逆元。输入格式一行两个正整数 nn 与 pp输出格式n 行,第 i 行一个正整数,表示 ii 在模 pp 意义下的乘法逆元。样例Inputcopy Outputcopy 10 13 179108112534 数据范围与提示1 <=n <=3* 10 ^ 6,n<p<20000528p为质数。...

2022-02-20 12:24:39 252

原创 【二分】 A^B mod C

A^B mod C

2022-02-19 20:15:52 361

空空如也

空空如也

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

TA关注的人

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