自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【题解】HDOJ7038 [2021百度之星初赛三]虫族基地

前往:我自己搭建的博客题目HDOJ7038 虫族基地题解代码#include <bits/stdc++.h>using namespace std;typedef long long ll;const ll inf=1e18;ll up(ll x,ll y) {return x%y ? x/y+1 : x/y;} //除法向上取整 int main(){ int T; scanf("%d",&T); while(T--) { ll n,m

2021-08-07 23:52:04 218

原创 【题解】HDOJ7037 [2021百度之星初赛三]网格路径

前往:我自己搭建的博客题目HDOJ7037 网格路径题解由于第一步只能向下或向右,所以不相交的路径最多只有两条。让第一步向下的路径尽量靠着左下角走(即先尝试向下走,再尝试向右走),为另一条路留出最大的空间,然后再尝试走第二条路。代码#include <bits/stdc++.h>using namespace std;typedef long long ll;const int inf=0x7fffffff;const int maxn=15;int n;

2021-08-07 23:49:21 212 1

原创 【题解】HDOJ7036 [2021百度之星初赛三]数字游戏

前往:我自己搭建的博客题目HDOJ7036 数字游戏代码#include <bits/stdc++.h>using namespace std;typedef long long ll;int main(){ int T; scanf("%d",&T); while(T--) { ll n,mx,mn,ave; scanf("%lld%lld%lld%lld",&n,&mx,&mn,&ave); if(n==1)

2021-08-07 23:47:10 276

原创 【题解】洛谷P7778 Dancing Line

前往:我自己搭建的博客题目洛谷P7778 Dancing Line题解此题关键在于找出点的顺序。观察样例的图像可知:如果路径不平行于坐标轴,那么沿着路径顺序的各点的横坐标和纵坐标至少有一个是单调的;如果路径平行于坐标轴,那么两个坐标都不严格单调。代码#include <bits/stdc++.h>using namespace std;typedef long long ll;const int inf=0x7fffffff;const int maxn=1e6

2021-08-05 23:06:14 201 1

原创 【题解】HDOJ7007 [2021百度之星初赛二]净化

前往:我自己搭建的博客题目HDOJ7007 净化题解代码#include <bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=1e5+5;const ll inf=1e18;ll a[maxn],sum[maxn];ll up(ll x,ll y) {return x%y ? x/y+1: x/y;} //向上取整除法 int main(){ int t;sca

2021-08-05 23:03:36 117

原创 【题解】HDOJ6999 [2021百度之星初赛一]萌新

前往:我自己搭建的博客题目HDOJ6999 萌新题解设amodc=bmodc=m,则a=k1c+m,b=k2c+m,所以a−b=(k1−k2)c=kc。注意特判a=b的情况。代码#include <bits/stdc++.h>using namespace std;typedef long long ll;const int inf=1e9+5;int main(){ int T; scanf("%d",&T); while(T--)

2021-08-05 22:59:07 170

原创 【C语言】对指针的深入理解

前往:我自己搭建的博客声明时int *a;表示*a产生的结果的数据类型是int类型,*运算符的作用是返回指定地址的变量的值,a是一个指向int的指针。声明时int* a,b,c;等价于int *a; int b,c;正确写法是int *a,*b,*c;初始化时char *a="hello";相当于char *a; a="hello";即初始值是赋给a本身的。#include <stdio.h>int main(){ char *tmp="hello"; printf...

2021-08-05 22:56:36 63

原创 Linux命令学习笔记

前往:我自己搭建的博客重启:reboot 关机:shutdown 立即关机:sudo shutdown -h now 列出当前目录下的文件:ls 输出当前目录的绝对路径:pwd 切换目录:cd cd ..为返回上一级目录 创建目录:mkdir name 删除空目录:rmdir name 移除文件或目录:rm name 以root权限执行:sudo 编译C代码:gcc test.c -o test.out 加-Wall(放在最后)打印警告信息 编译C++代码:g++ test.c

2021-08-05 22:49:41 45

原创 jQuery学习笔记

前往:我自己搭建的博客jQuery是一个JavaScript库。 从CDN中载入jQuery:<script src=”https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js”> 基础语法:$(selector).action(),美元符号定义jQuery,选择符(selector)查询HTML元素,action() 执行对元素的操作。 防止文档在加载完成之前(即在DOM加载完成后)运行代码:$(document).ready(fu

2021-04-05 21:04:13 60

原创 Node.js学习笔记

前往:我自己搭建的博客Node.js是运行在服务端的JavaScript。 运行代码:在终端执行语句 node test.js 安装模块:在终端执行语句 npm install module_name 引入模块:var module=require(“module_name”); 创建服务器:http.createServer(function (request, response) {}).listen(); listen方法绑定端口,函数通过request, response参数来接收和响

2021-04-05 21:01:52 82

原创 JavaScript学习笔记

前往:我自己搭建的博客声明变量:var 注释://,/* */ 数组:声明var a=new Array()或var a=[],数组长度为a.length,向数组末尾添加/删除元素用push(),pop(),向数组开头添加/删除元素用unshift(),shift(),获取某元素的索引值用indexOf() 对象:对象的属性用键值对定义,键不加引号(不同于JSON),var a={key1:value1,key2:value2},寻址用a.key或a[“key”] 匹配字符串:x.src.mat

2021-04-05 21:00:02 125

原创 CSS学习笔记

前往:我自己搭建的博客id选择器:以“#”开头,为标有特定id的元素指定特定的样式。 class选择器:以“.”开头,用于描述一组(多个)元素的样式。 颜色值:用十六进制或RGB定义。 background-color属性:设置元素的背景颜色。 background-image属性:设置元素的背景图像。 color属性:设置文字颜色。 text-align属性:设置文本的水平对齐方式。常用值有left、right、center。 vertical-align属性:设置元素的垂直对齐方式。b

2021-04-05 20:58:18 47

原创 HTML学习笔记

前往:我自己搭建的博客<!–…–>:注释。 <script>:用于定义客户端脚本。可以包含脚本语句,也可以链接一个外部脚本文件,用src属性规定外部脚本文件的URL。type属性规定脚本类型。 URL:绝对URL(指向其他站点)或相对URL(指向站点内的文件)。 <meta>:用name属性和content属性来描述网页信息。 <title>:定义文档的标题。 <link>:链接一个外部样式表。type属性规定脚本类型。rel属性规定当

2021-04-05 20:57:17 73 1

原创 【题解】CF1494B Berland Crossword

前往:我自己搭建的博客题目CF1494B Berland Crossword题解容易发现:除了四个角以外,每条边上的格子不会相互影响,所以关键是四个角的状态。穷举所有四个角的情况,然后逐一判断。代码#include <bits/stdc++.h>using namespace std;const int maxn=1e5+5;int n,u,r,d,l; bool judge(int x,int y,int z,int w) //枚举四个角,0表

2021-03-03 23:12:17 173 1

原创 【题解】CF1494A ABC String

前往:我自己搭建的博客题目CF1494A ABC String题解题目的描述比较复杂难懂。题中所说的可以通过添加“1”和“+”转化为数学表达式的合法序列,其实就是嵌套关系正确的括号序列,用一个栈即可判断合法性。然后穷举所有ABC可能的值(左括号或右括号),逐一判断。代码#include <bits/stdc++.h>using namespace std;const int maxn=100;char a[maxn];stack<int&g

2021-03-03 22:58:46 176 1

原创 【题解】CF1491D Zookeeper and The Infinite Zoo

前往:我自己搭建的博客题目CF1491D Zookeeper and The Infinite Zoo题解此题可以举例子找规律,比如u=111(二进制),当v=1,11,111,10,110,100,101时,对应的u+v=1000,1010,1110,1001,1101,1011。可以发现,u到u+v的变化,可以抽象成将1向高位移动,移动时还可能有部分1变为0。所以,如果a要到达b,就必须有足够的1,而且位置相对b而言在较低位。代码#include <bits/stdc++

2021-03-01 22:30:40 224

原创 【题解】CF1491C Pekora and Trampoline

前往:我自己搭建的博客题目CF1491C Pekora and Trampoline题解贪心策略:尽量从编号小的地方开始跳。从头到尾模拟跳的过程,但是如果对每一步都逐个模拟会超时。可以发现:每次在一个地方跳的时候,只会影响到它后面的物体,而对前面的无影响。所以,处理某一点时,可以先将影响传递到下一点,不必传递到结尾。因此,需要记录每一点被前面的路线经过了几次。对于某一点,如果要使它的值降为1,则一定会经过i+2~i+S[i]的每一点,并且,如果这点的值为1后又被经过了几次,则i+1也会同

2021-03-01 21:48:37 241 4

原创 【题解】CF1491B Minimal Cost

前往:我自己搭建的博客题目CF1491B Minimal Cost题解这道题看似有很多种情况,但障碍的移动方式其实只有几种。当所有障碍在一列时,可以将某一个障碍水平移动一格,再垂直移动一格或者水平移动两格。当有通路时,则无需移动。其余情况都可以通过将其中一个障碍水平移动一格或垂直移动一格来达成目标。代码#include <bits/stdc++.h>using namespace std;const int maxn=105;int a[maxn];int m

2021-03-01 15:32:53 154 2

原创 【C++】正整数除法向上取整

前往:我自己搭建的博客如果要实现(a/b)向上取整的运算,通常可以使用ceil()函数,即如下代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;int main(){ ll a,b; scanf("%lld%lld",&a,&b); ll ans=(ll)ceil((double)a/b); printf("%lld\n",ans); return 0;}但是

2021-02-24 15:11:19 5119

原创 【Python】统计B站弹幕数据

前往:我自己搭建的博客所用版本:Python 3.6,requests 2.18.4,jieba 0.42.1,nltk 3.2.4,wordcloud 1.8.1程序实现的功能:输入视频的地址,生成对应弹幕的词云。每个视频都对应一个弹幕的xml文件,地址为https://comment.bilibili.com/(cid).xml,每个视频都有一个cid。将视频的网页爬取,然后从中搜索“cid”,就可以看到cid在哪里有。然后在程序里就可以用正则表达式,根据cid附近的字符串特征,将cid查找

2021-02-13 11:54:16 1454 1

原创 【Python学习笔记】正则表达式

前往:我自己搭建的博客所用版本:Python 3.9# -*- coding: utf-8 -*-import repattern = re.compile("AA") # 创建模式对象(括号内为正则表达式)match = pattern.search("ABABAA") # 校验字符串(括号内为需要校验的内容)# 返回第一个匹配到的字符串的下标和内容match = re.search("AA", "ABABAA") # 另一种写法match = re.findall("AA

2021-02-12 20:17:12 123

原创 【Python学习笔记】爬虫基础(requests获取网页信息)

前往:我自己搭建的博客所用版本:Python 3.9,requests 2.25.1最近在使用urllib进行网页信息的获取时,我发现它的decode()方法容易出问题,于是又学习了requests库的操作。利用requests.get(url)可以获取一个get请求的响应,并将响应的内容存入一个对象中。# -*- coding: utf-8 -*-import requestsurl = "https://www.baidu.com/"response = requests.g

2021-02-11 15:09:54 794 2

原创 【Python学习笔记】爬虫基础(解析数据)

前往:我自己搭建的博客所用版本:Python 3.6使用bs4.BeautifulSoup()可以解析爬取的网页数据并以树形结构存储,然后就可以使用返回的对象查询数据。# -*- coding: utf-8 -*-import bs4import re #实现正则表达式的功能(判断字符串是否符合某个标准)f=open("baidu.html",'r',encoding="utf-8")html=f.read()bs=bs4.BeautifulSoup(html,"html.pars

2021-02-08 17:42:31 154 2

原创 【Python学习笔记】爬虫基础(urllib获取网页信息)

前往:我自己搭建的博客所用版本:Python 3.6利用urllib.request.urlopen()获取指定网页的源代码,并存入一个对象中。用这个对象的read()和decode()方法进行读取和解码。urllib.request.urlopen()默认获取一个get请求的响应,如果使用data参数,则为post请求。为了应对某些网站的反爬机制,需要程序伪装成真实用户,封装一个请求对象。# -*- coding: utf-8 -*-import urllib.requestimport

2021-02-08 17:11:59 689 3

原创 【Python学习笔记】词频统计

前往:我自己搭建的博客所用版本:Python 3.6,jieba 0.42.1,nltk 3.2.4,wordcloud 1.8.1NLTK统计将分词后的结果放入list,调用nltk.FreqDist()进行频数统计。支持用下标查询某个词语的频数。用most_common(k)函数可以将频数排名前k的词语存入一个list,list中的元素类型为tuple。生成词云先生成存放着频数的字典,然后调用wordcloud.WordCloud().fit_words()生成词云。impor

2021-01-30 17:14:30 531 1

原创 【Python学习笔记】结巴分词

前往:我自己搭建的博客所用版本:Python 3.6,jieba-0.42.1分词模式精确模式:以尽可能正确的方式切分句子,适合做文本分析。 全模式:扫描出句子中所有可能的词语,速度快,无法消歧义。 搜索引擎模式:在精确模式的基础上,对长词再次切分。修改词典动态增删词语:add_word(),del_word(),修改会被保存,直到Python被关闭。 批量增加:将需要添加的词语写入一个文件(一行一个,UTF-8),然后用load_userdict(),修改的有效期同上。停用词

2021-01-28 17:54:02 311 1

原创 《C和指针》学习笔记(一)

前往:我自己搭建的博客基本知识符号常量的名字一般用大写。 一个NUL字节是指字节模式为全0的字节,即转义字符‘\0’,即ASCII码为0的字符。字符串是一串以NUL字节结尾的字符(不含NUL)。 goto语句适合用于跳出多层嵌套的循环。 关系运算符(大于、小于、等于)产生的结果为整型值(0或1)。 逻辑运算符(与、或)是短路运算符。 如果同一条语句中调用了多个函数,这几个函数的调用顺序是不确定的,如果这些函数执行了I/O操作或修改了全局变量,则会产生错误的结果。 数组名的值是一个指针常量

2021-01-22 11:09:27 79

原创 【题解】CF1421B Putting Bricks in the Wall

前往:我自己搭建的博客题目CF1421B Putting Bricks in the Wall题解这道题如果想要求出最优解(c最小),就非常困难。但是题目只需要求一个可行解,所以可以化繁为简。只考虑与S和F相邻的四格,使得与S相邻的两格和与F相邻的两格数字不同。其实这种贪心思想已经在样例中透露出来,看样例的第二组数据,很显然c可以为0,但答案还是变换了两次。因此,只需要求出由这四个点的数字构成的0/1数列变换成0011或1100所需的较小步数。代码#include <bits

2020-10-26 08:07:16 144 1

原创 【题解】CF1421D Hexagons

前往:我自己搭建的博客题目CF1421D Hexagons题解在六边形网格中,有六个方向的不同走法,但是坐标却只有二维。将每个方向的操作用数字表示出来,假设当前在(x,y),经过C1,C2,C3,C4,C5,C6后,分别到达(x+1,y+1),(x,y+1),(x-1,y),(x-1,y-1),(x,y-1),(x+1,y)。这样来看,六边形网格其实可以转化为直角坐标系,6个方向对应x,y轴的方向以及直线y=x的方向。然后最简单的方法就是穷举所有情况。代码#include <

2020-10-26 07:15:14 128

原创 【题解】洛谷P6857 梦中梦与不再有梦

前往:我自己搭建的博客题目洛谷P6857梦中梦与不再有梦题解前置知识:给定一张无向图,若存在一条路径,恰好经过每条边一次(即俗称的一笔画),则称该路径为欧拉路径。若欧拉路的起点和终点相同,则称其为欧拉回路。存在欧拉回路的充要条件:(无向图)所有点度数为偶数;(有向图)所有点的入度和出度相等。存在欧拉路径(但不是欧拉回路)的充要条件:(无向图)除两点外,其余点的度数为偶数,且度数为奇数的两点为起点和终点;(有向图)起点出度比入度大1,终点入度比出度大1,其余点入度等于出度。本题要求

2020-10-26 06:48:12 231

原创 【题解】CF1426F Number of Subsequences

前往:我自己搭建的博客题目CF1426F Number of Subsequences题解从左往右扫描,记录一些前缀(a,a?,?b,??,?,ab)的数量,同时计算答案。记所有”?”的数量为k,sum[1/2/3/4/5/6]分别表示前缀a/a?/?b/??/?/ab的数量。代码#include <bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=2e5+5;const

2020-10-17 11:33:59 132

原创 【题解】CF1426D Non-zero Segments

前往:我自己搭建的博客题目CF1426D Non-zero Segments题解显然,插入的数为无穷大时作用最大。同时,如果两个和为0的子区间有重叠部分,则只需要在重叠部分插入就可以使两个子区间同时满足条件。将所有和为0的子区间抽取出来单独考虑,题意即可简化为:有一些区间,如何插入最少的特殊元素,使得每个区间中都有至少一个特殊元素。这就成了一个贪心的经典题,策略为:从左往右扫描每个区间的左端点,对于某一个暂时没有特殊元素的区间,将特殊元素插入到区间的最右端。(证明略)但是,如果先找出

2020-10-16 21:31:55 130

原创 【题解】CF1426C Increase and Copy

前往:我自己搭建的博客题目CF1426C Increase and Copy题解此题关键在于一个简易的贪心:先进行+1操作,再进行复制操作(证明:若交换一个排在前面的+1操作和一个排在后面的复制操作,总和不会变大)。若先进行a次+1操作,再进行b次复制操作,则会得到一个由(b+1)个(a+1)组成的数列。枚举数列中的数x的大小,答案取最小值。由于答案的形式与对勾函数比较相似,所以答案接近于根号sum,可以减小枚举的范围。代码#include <bits/stdc++.

2020-10-14 22:33:23 253

原创 【题解】CF1418C Mortal Kombat Tower

前往:我自己搭建的博客题目CF1418C Mortal Kombat Tower代码#include <bits/stdc++.h>using namespace std;const int inf=2e9;const int maxn=2e5+5;int n;int f[maxn][2],a[maxn]; //f[i][0/1]表示当前是第i个BOSS且这个BOSS是friend/me杀的 inline void dp(){ f[1][0]=a[1],f[2]

2020-09-18 12:50:17 240

原创 【题解】CF1393C Pinkie Pie Eats Patty-cakes

前往:我自己搭建的博客题目CF1393C Pinkie Pie Eats Patty-cakes题解题目即求任意两个相同数的距离的最小值的最大值,可以二分答案。在判断距离>=d是否可行时,用贪心思想:依次填写数列中的数,每次填写时,填重复次数最多的且符合条件的数。代码#include <bits/stdc++.h>using namespace std;const int maxn=1e5+5;int n;int cnt[maxn],tmp[maxn],c

2020-09-18 10:36:47 126

原创 【题解】CF1399C Boats Competition

前往:我自己搭建的博客题目CF1399C Boats Competition代码#include <bits/stdc++.h>using namespace std;const int maxn=155;int n,mx;int a[maxn],cnt[maxn]; //cnt[i]表示等于i的元素的个数 inline void solve(){ int ans=0; for(int s=(mx<<1);s>=2;s--) //暴力枚举

2020-09-18 10:35:23 88

原创 【题解】洛谷P1040 [NOIP2003]加分二叉树

前往:我自己搭建的博客题目洛谷P1040加分二叉树题解在中序遍历的序列中,每个子区间对应一棵树,如果确定了根节点,那么该节点左侧是左子树,右侧是右子树,可以区间dp。代码#include <bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=35;int n;int rt[maxn][maxn]; //记录区间[l,r]构成的子树的根节点 ll f[maxn][maxn]

2020-09-13 17:30:11 164

原创 【题解】洛谷P1880 [NOI1995]石子合并

前往:我自己搭建的博客题目洛谷P1880石子合并题解这是一道经典的区间dp题,f[l][r]表示将区间[l,r]之间的石子合并后的最值。可以由长度小的区间推得长度大的区间的信息。题中数据是环状的,需要断环为链,将原序列复制并加到后面。代码#include <bits/stdc++.h>using namespace std;const int inf=0x7fffffff;const int maxn=200+5;int n;int f1[maxn][maxn

2020-09-13 16:04:54 149

原创 【题解】洛谷P1108 低价购买

前往:我自己搭建的博客题目洛谷P1108低价购买题解此题关键在于计算方案数,如果第i个位置的最长序列长度是由第j个位置更新而来的,则方案数更新方法相同。去重只要当数字相同时,清空其中一个位置的重复信息。代码#include <bits/stdc++.h>using namespace std;const int maxn=5e3+5;int n;int a[maxn],f[maxn],cnt[maxn]; //f[i]表示以a[i]结尾的单调数列的最长长度,c

2020-09-13 12:53:38 125

原创 【题解】洛谷P4310 绝世好题

前往:我自己搭建的博客题目洛谷P4310绝世好题题解相邻两数位与不为0,等价于两数存在一个二进制位都为1。若只考虑某一个二进制位,则所有此位为1的数构成了最长子序列。再将所有二进制位综合考虑,使用动态规划。f[i]表示以上一个第i位为1的数为结尾的最长子序列的长度。若当前数的第i位为0,则不作更新;若为1,则选一个最大的f[j]更新。代码#include <bits/stdc++.h>using namespace std;const int maxn=1e6;i

2020-09-13 11:10:25 308

空空如也

空空如也

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

TA关注的人

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