自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 第284场周赛 得到要求路径的最小带权子图

求两个点到同一个点的权值最小。到目标点相同的路径需要排除掉,所以可以找三个点到同一个点的权值最小,使用目标点计算时只需将边反过来就可以了。这样就相当于把中间点当成跳板,两个点到中间点,然后再从中间点到目标点,目的就是消除相同路径的影响。class Solution {public: typedef long long ll; struct node{ int to,v; }; const ll INF = 1e18; vector<ll&

2022-03-13 12:30:54 450

原创 常见排序算法

冒泡排序每次把最大的数移到后面void bubbleSort(vector<int>& vc,int n){ for(int i=0;i<n;i++){ for(int j=0;j<n-i-1;j++){ if(vc[j]>vc[j+1])swap(vc[j],vc[j+1]); } }}选择排序每次把最小的数放到前面void selectionSort(vector<int>& vc,int n){ for(in.

2022-02-14 17:04:15 480

原创 红黑树总结

红黑树是一种含有红黑结点的自平衡二叉查找树。性质:节点不是黑色就是红色,根节点一定是黑色的根到叶子的所有路径,不可能存在两个连续的红色节点叶子节点都为黑色,且为null每个节点到叶子节点的所有路径,都包含相同数目的黑色节点(相同的黑色高度)三种操作:左旋、右旋、变色红黑树的插入操作插入步骤:根据二叉搜索树的特性,找到新的节点合适的插入位置,即找到它的父节点决定作为父节点的左孩子还是右孩子标记为红色节点,可能破坏红黑树规则需要变色+旋转调整情形:新插入节点的父节点是黑色节

2022-02-12 17:10:53 1085

原创 C++总结

本文章结合许多互联网中的数据。所谓取之互联网,用之互联网。若涉及版权侵犯,可以留言或者私信告知。目前还有很多知识更新中,有什么错误欢迎评论交流。1、基本语言static关键字的作用定义全局静态变量内存位置:静态存储区生命周期:整个程序运行期间都存在,即程序运行开始到程序结束初始化:未经初始化的自动为0作用域:文件作用域(只在声明它的文件内可见)定义局部静态变量内存位置:静态存储区生命周期:整个程序运行期间都存在,即程序运行开始到程序结束初始化:未经初始化的自动为0作用

2022-02-10 21:26:50 1345

原创 操作系统总结

本文章结合许多互联网中的数据。所谓取之互联网,用之互联网。若涉及版权侵犯,可以留言或者私信告知。花了很多时间总结,目前还有很多知识更新中,有什么错误欢迎评论交流。什么是操作系统(OS)?本质上是一个运行在计算机上的软件程序 ,用于管理计算机硬件和软件资源操作系统的存在屏蔽了硬件层的复杂性。操作系统的内核(Kernel)是操作系统的核心部分,它负责系统的内存管理,硬件设备的管理,文件系统的管理以及应用程序的管理。 内核是连接应用程序和硬件的桥梁,决定着系统的性能和稳定性。1、进程与线程1.1

2022-01-23 00:01:45 673

原创 MySQL总结

本文章结合许多互联网中的数据。所谓取之互联网,用之互联网。若涉及版权侵犯,可以留言或者私信告知。花了很多时间总结,目前还有很多知识更新中,有什么错误欢迎评论交流。1、初始数据库1.1 什么是数据库概念:数据仓库,安装在操作系统之上的软件。可以存储大量的数据。作用:存储数据,管理数据。1.2 数据库分类关系型数据库(SQL)通过表和表之间,行和列之间的关系进行数据的存储。MySQL、oracle、SqlServer非关系型数据库(NoSQL)对象存储,通过对象的自身属性来决定。R

2022-01-22 23:51:59 1087

原创 计算机网络总结

本文章结合许多互联网中的数据。所谓取之互联网,用之互联网。若涉及版权侵犯,可以留言或者私信告知。花了很多时间总结,目前还有很多知识更新中,有什么错误欢迎评论交流。1、TCP1.1 TCP 三次握手与四次挥手1.1.1 TCP的基本认识TCP的头格式TCP虽然是面向字节流的,但TCP传送的数据单位却是报文段。一个TCP报文段分为首部和数据两部分,而TCP的全部功能体现在它首部中的各字段的作用。TCP报文段的前20个字节是固定的,后面4n字节是根据需要而增加的选项。因此TCP首部的最小长度是20字

2022-01-22 23:48:40 3176

原创 2021CCSP最近数合并

【题目背景】在西西艾弗岛上,生活着快乐的小 C、小 S 和小 P。最近,三位小朋友在学校里学到了“两个数之间的距离”这一重要的概念。为了巩固知识,小 P 玩起了“合并最近数”的游戏。【题目描述】A = {a1, a2, · · · ,an} 是一个包含 n 个自然数(非负整数)的集合(根据集合的定义,这 n 个数两两不同),且其中的最大值小于一个给定的正整数 k。小 P 需要对集合 A 中的数进行若干轮合并操作,到 A 中仅剩一个数为止。每轮合并操作的流程如下:选取数对 (x, y):从

2022-01-13 15:30:11 831 2

原创 初识Markdown

标题使用#+空格+标题名设置一级标题使用##+空格+标题名设置二级标题依次类推一级标题二级标题三级标题四级标题字体粗体前后两个*斜体前后一个*粗体+斜体前后三个*删除线前后两个~引用大于号+空格分割线三个-或者三个*图片![]+图片地址超链接[显示文字]+链接地址这是一个超链接列表1+点+空格ABC-+空格ABC需要进入源代码模式将每行之间的空行删掉才有以下效果名字性别年纪张三男

2021-12-02 19:27:26 255

原创 F. Zero Remainder Sum(四维dp)

题意:给一个矩阵n*m,矩阵每一行选择不超过m/2个数,使得选择的所有数相加可以整除k,求出选择的数和的最大值。题解:dp[i][j][l][r]表示:第i行第j列取了l个数模为r对于第i行的第j个数有两种选择:1.不选择该数:dp[i][j][l][r]=max(dp[i][j][l][r],dp[i][j-1][l][r])2.选择该数:dp[i][j][l][(r+a[i][j])%k]=max(dp[i][j][l][(r+a[i][j])%k],dp[i][j-1][l-1][r.

2021-11-08 20:00:29 203

原创 2019CCPC江西补题

A - Cotree题意:给两颗树,分别在两颗树中找一个点,将两个点相连使得形成的树两两结点距离和最小,求出这个最小的距离和。思路:重心就是一棵树中这个点到其他点的距离和最小,所以两个相连的点两棵树各自的重心,然后将两个重心相连形成的树就是两两结点距离相加最小,然后再跑一遍dfs即可求出所有点的两两的距离。(很裸的求重心的题)#include <iostream>#include <algorithm>#include <cstring>#includ

2021-11-04 10:55:16 109

原创 The 2021 ICPC Asia Regionals Online Contest (II)

G#include <bits/stdc++.h>#define INF 0x3f3f3f3f#define mod 998244353#define ll long longusing namespace std;const int N=1e5+5;int n,t,a[N],x,y,z,b;void solve(){ cin>>n>>t; b=t; for(int i=1;i<=n;i++){ cin>>x>&gt

2021-09-30 13:39:09 126

原创 Codeforces Round #744 (Div. 3)

2021.9.29E2题意:往一个双端队列deque头或者尾按顺序插入一段序列,要求输出插入后的序列逆序数对最少,输出最少的逆序数对数量。题解:这题很容易就可以想到树状数组+离散化,但是不知道要怎么插入可以达到最后逆序数对最少。这题需想到局部最优便是全局最优,a[i]插到前面还是后面只需判断前面插入的所有数比它大的多还是小的多,大的多插到前面逆序数对便是较少,反之插到后面,而且前一次的插入前后不会影响后一次插入判断(因为如果这次插到前面,那前一次插到前面还是后面都是在此次插入数的后面),所以只需

2021-09-29 15:44:48 138

原创 Android小项目:制作计算器

可能会出现bug,不过现在还没未测出,欢迎提出你的bug这里逻辑处理时将运算符离散化为+:-1,-:-2,*:-3,÷:-4。页面布局:mylayout.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" andr

2021-09-29 00:00:00 170

原创 Codeforces Round #680 (Div. 2, based on Moscow Team Olympiad)

A题意:给两个长度为n的序列a,b,可以对b进行重新排列,判断是否满足a,b所有对应位置和小于x。题解:将a从小到大排序,b从大到小排序,判断是否有位置和大于x,这样可以保证最大的和取最小。#include <bits/stdc++.h>using namespace std;const int N=1e5+5;int n,k,a[N],b[N];bool cmp(int a,int b){ return a>b;}void solve(){ cin&gt

2021-09-23 22:55:35 146

原创 2021icpc网络赛

A#include <bits/stdc++.h>#define INF 0x3f3f3f3fusing namespace std;int n,k;const int N=1e5+5;int tr[N<<3],cnt[N<<1];void push_up(int rt){ tr[rt]=min(tr[rt<<1],tr[rt<<1|1]);}void build(int l,int r,int rt){ if(l==

2021-09-20 17:04:17 355

原创 倍增“找信号”

题目:Supposethatyouarestrandedonadesertisland.Youhavearadioandabatterywithyou,andtheradioiscapableoftransmittingatdifferentintegerpowerlevels(e.g.1W,2W,3W,4W,…).Assoonasyoutransmitadistresssignalwithenoughpower...

2021-09-09 15:37:51 119

原创 Time-division Multiplexing(双指针)

#include <bits/stdc++.h>#define INF 0x3f3f3f3f#define ll long longusing namespace std;const int N=1e2+5;int n,len[N],vis[N],now[N];string s[N];bool check(int x){ if(x)return true; for(int i=1;i<=n;i++){ if(now[i])return tr.

2021-08-31 12:09:26 188

原创 树的重心、点分治

大佬讲的树的重心很详细的点分治,基本看完就懂了计算以无根树每个点为根节点时的最大子树大小,这个值最小的点称为无根树的重心。性质1:某个点是树的重心等价于它最大子树大小不大于整棵树大小的一半。性质2:树至多有两个重心。如果树有两个重心,那么它们相邻。此时树一定有偶数个节点,且可以被划分为两个大小相等的分支,每个分支各自包含一个重心。性质3:树中所有点到某个点的距离和中,到重心的距离和是最小的;如果有两个重心,那么到它们的距离和一样。反过来,距离和最小的点一定是重心。性质4:往树上增加或

2021-08-19 23:25:50 327

原创 Codeforces Round #726 (Div. 2)

2021.6.18A题意:输入长度为n的序列,每次操作可以往序列里面加非负整数,问需要执行多少次操作使得操作完的序列和等于序列长度。题解:当初始序列和<序列长度时只需操作一次,加一个整数使得条件成立,若为和>=序列长度,说明和太大了,每次只需往序列插0就可以了,易得这样的得出的答案就是序列和-序列长度,即为插入0的个数。#include <iostream>#include <algorithm>#define ll long longusing

2021-07-29 01:08:36 197

原创 Codeforces Round #731 (Div. 3)(E~G)

2021.7.10E题意:长度为n的房间,有m个空调,第i个空调在ai位置,温度为ti,第i个房间的温度为min1≤j≤k(tj+|aj−i|)求所有房间的温度。题解:因为aj∈[1,n],所以必有一个位置aj-i=0,这样就可以温度t的最小值,每次在最小值向左或者向右温度的值都是+1,所以直接向左找记录的最小值,再从右遍历找最小值,最后输出的答案就是两个方向记录的最小值即为该房间的温度最小值。#include <iostream>#include <algori.

2021-07-14 13:16:34 139

原创 Codeforces Round #725 (Div. 3)

E题意:两个操作1.直接赋值 a :=b2.相加后赋值 a = b+c其中每个属性都为字符串,输出最后一条语句写入的字符串

2021-06-13 12:54:42 182

原创 Codeforces Round #724 (Div. 2)

2021.6.6E题意:输入n*m的网格,其中只包含'0'或'#',为字符'0'代表这个单元格必须为0,为''

2021-06-08 00:31:49 337 2

原创 python爬取图片、新闻考核考核考核

import requestsimport reMaxSearchPage=5CurrentPage=1DefaultPath='C:\\Users\\86133\\Documents\\image\\'NeedSave = True # 是否需要储存def imageFiler(content):#通过正则表达获取当前页面的图片地址数组 return re.findall('"objURL":"(.*?)"',content,re.S)def nextSource(cont.

2021-06-03 11:39:52 224

原创 Deltix Round, Spring 2021 (Div. 1 + Div. 2)

A题意:输入一个长度为n的01字符串,每次操作可以将字符串中有且只有一个邻居为1的0变为1,问m次操作变化后的字符串。题解:每次操作遍历字符串,如果只有一个l

2021-05-31 20:32:55 262

原创 Codeforces Round #723 (Div. 2)

2021.5.28A题意:输入一个2*n的序列a,要求对a进行重新组合形成序列b,使得每个元素bu'deng'yu题解:

2021-05-31 20:30:53 185

原创 Codeforces Round #722 (Div. 2)

2021.5.24B题意:给一个长度为n的序列,计算该序列的最长“奇怪”子序列长度为多少?其中奇怪序列的定义为序列里的任何一对数的差值大于等于序列的最大值。题解:计算一下序列里负数个数ans0,0的个数ans1,正数的个数ans2,当ans1>=2,那么答案为ans0+ans1,否则可以判断是否拿正数,易知正数最多拿1个,如果正数的最小值大于负数和0之间差值的最大值,那么就可以取那个最小的正数,否则不能取正数,还需判断一下ans0=0|ans1=0|ans2=0的情况即可得出答案。#

2021-05-27 14:23:57 80

原创 Codeforces Round #721 (Div. 2)

2021.5.20A题意:给一个整数n,求出最大的k,其中n&(n-1)&...&k=0题解:只需要让n每次递减的数每个二进制位都有存在0,可想k就是n的最高位为1其他位都为0的数m-1,这样可以保证每位二进制位都有0#include <iostream>#include <algorithm>#define ll long longusing namespace std;int main(){ ios_base::sync

2021-05-23 19:20:51 173

原创 Codeforces Round #719 (Div. 3)

2021.5.6B题意:输入一个数n,判断1-n有几个数每位数分解出来(个位,十位)都相等。题意:十进制有1-9,每次加上一样的位数值(1->11->111->1111),要求小于等于n就可以。#include <iostream>#include <algorithm>#define ll long longusing namespace std;int main(){ std::ios::sync_with_stdio(fal

2021-05-06 23:27:34 167

原创 Codeforces Global Round 14

2021.5.2A题意:输入n个不同的数,要求输出前i个数和不等于x。题解:要是所有数的和为x,那就不管怎么搭配都不满足条件,否则因为每个数都是不同的,所有只要碰到和等于x就只需先输出下一个数,再输出这个数,这样和就不会等于x,因为前面判断所有数的和不等于x,所以碰到和等于x就一定不会是最后一个数,后面还有数。#include <iostream>#include <algorithm>#define ll long longusing namespace s

2021-05-03 19:46:57 152

原创 Educational Codeforces Round 108 (Rated for Div. 2)

2021.4.29A题意:有r个红豆角,b个蓝豆角,将这些豆角分组,要求每组两种豆角至少各有一个,并且每组豆角数量相差不超过d,判断分组是否可以成立。题解:先取出k1=max(r,b)和k2=min(r,b),这样最多可以分成k2组,每组放一个,这样比它大的豆角最多可以取(d+1)*k2个,只需判断k1是否小于等于最大值就可以了。#include <iostream>#include <algorithm>#define ll long longusing n

2021-05-01 14:30:02 125

原创 Contest 2050 and Codeforces Round #718 (Div. 1 + Div. 2)

2021.4.23A题意:给一个数n,判断n能否被2050*10^k中取的数相加得到。题解:每个相加的数都是2050的倍数,所以直接判断n能否被2050整除得到,可以的话直接加上商的位数和。#include <cstdio>#include <iostream>#include <algorithm>#define ll long longusing namespace std;int main(){ ll t,n; sca

2021-04-24 15:39:44 252

原创 Codeforces Round #717 (Div. 2)

2021.4.21A题意:给两个数n和k,然后输入含有n个数的序列,每次对序列进行操作:取两个数,其中一个加1,另一个减1,并且保证序列中的每个数都是非负数。对该序列最多进行k次操作,使得该序列形成一个最小的字典序。(题目看成取的两个数需要大小不同,一直wa,结果这场就炸了,????)题解:每次操作对第一个非0的数-1,最后一个数+1,进行k次操作,如果序列除了最后一个数其他都是0,那就可以直接退出操作,已经达到最大的字典序了。#include <iostream>#incl

2021-04-22 20:44:52 390

原创 Codeforces Round #716 (Div. 2)

2021.4.19A题意:给你n个数的序列,问你是否存在子序列的乘积不是一个平方数题解:判断n个数的序列是否都是完全平方数#include <cstdio>#include <iostream>#include <algorithm>#include <cmath>using namespace std;int main(){ int n,x,t; cin>>t; while(t--){

2021-04-20 20:13:11 93

空空如也

空空如也

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

TA关注的人

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