自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ACM-ICPC 现役(铜牌) Codeforces Rating: 2172

佛系考研人(考完之后再陆续更新...)

  • 博客(31)
  • 收藏
  • 关注

原创 kuangbin 并查集 - POJ - 1182 食物链

kuangbin 并查集 - POJ - 1182 食物链 (并查集模板题)传送门 Click here ~~题解:当op 等于 1的时候(真话x和y是同类):如果x的祖宗节点等于y的祖宗节点且(dis[x]-dis[y]) % 3!=0的时候如果 xx ≠ yy,合并x和y的集合。因为合并x和y所在集合多出了一段长度,这块长度是find(x)到find(y)的距离,所以求多出来的这块部分的长度。当x和y是同类时,有这样的特性(dis[x] + dis[find[x]] - dis[y])

2020-09-29 21:57:57 151

原创 kuangbin 并查集 - POJ - 1611 The Suspects (并查集模板题)

kuangbin 并查集 - POJ - 1611 The Suspects (并查集模板题)传送门 Click here ~~题意:小明被确诊了非典病毒,小明必须被隔离治疗,并且与他直接或间接接触者都要隔离观察。同一个社团内如果有人感染病毒或可能感染病毒,那么这个社团内所有人都被认为是可能已经感染了病毒,由于时间紧迫,需要尽快找到所有可能携带病毒的同学并隔离,以防止更大范围的病毒扩散,院长请你帮忙编写程序计算需要隔离多少人。题解:模板题。Click here ~~~ 可以看一下这个并查集模板

2020-09-29 20:27:58 182

原创 数据结构 —— 并查集(笔记及裸题)

并查集代码短但是特别精巧。将两个集合合并询问两个元素是否在一个集合当中(并查集的时间复杂度近乎O(1) )基本原理:每一个集合用一颗树来表示。树根的编号就是整个集合的编号。每个节点存储它的父节点,p[x]表示x的父节点问题1:如何判断树根?如果是树根的话 → if(p[x] == x) ,除了根节点之外p[x] ≠ x问题2:如何求x的集合编号?while(p[x] != x) x = p[x];只要x不是树根,就一直往上走。其实就是解决第二点,询问两个元素是否在一个集合当中,分别

2020-09-29 11:05:04 272

原创 Codeforces #565 Div3 C. Lose it!

Codeforces #565 Div3 C. Lose it!#include<cstdio>#include<iostream>#include<cstring>#include<string>#include<cmath>#include<algorithm> #define IOS ios::sync_with_stdio(false); cin.tie(0); cout.tie(0)#define ll l

2020-09-29 01:56:59 370 1

原创 Codeforces #565 D - Recover it!(数论)

Codeforces #565 D - Recover it! 数论 题意:给出b[n],按照一定的规则变成a[n];题解:原理是:倒推,原本题意是,由a[n]变成b[n];遍历:如果a[n]是质数,那么在b[n]中,保留a[n]并且加上质数表中的第a[n]个质数;如果a[n]是合数,那么在b[n]中,保留a[n]并且加上b[n]的最大除数。然后就倒推 —— 详情请看代码!!!#include<cstdio>#include<iostream>#include&

2020-09-29 01:56:47 147

原创 Codeforces Div. 3 #565 B. Merge it!

Codeforces Round #565 Div. 3 B. Merge it!题意: 对于一个数列,任意个数自由合并(求和),问最多可以有多少个数(数必须是3倍数,否则不算。)题解: 分别统计 %3 结果为 0 , 1, 2的个数。结束!(上代码,详情请看代码!!!)#include<cstdio>#include<iostream>#include<cstring>#include<string>#include<cmath&g

2020-09-28 10:23:02 121

原创 Codeforces Div3 #565 A - Divide it!

Codeforces Div3 #565 A - Divide it!(水题一看就懂)#include<cstdio>#include<iostream>#include<cstring>#include<string>#include<cmath>#include<algorithm> #define IOS ios::sync_with_stdio(false); cin.tie(0); cout.tie(0)#

2020-09-28 10:15:38 161

原创 week1 kuangbin题单 简单搜索 (连载ing)

kuangbin 简单搜索1.kuangbin 简单搜索 - POJ 1321 棋盘问题(dfs模板题)2.kuangbin 简单搜索 - POJ - 2251 Dungeon Master (三维bfs)3.kuangbin 简单搜索 - POJ - 3278 Catch That Cow (简单bfs)4.kuangbin 简单搜索 - POJ - 3279 Fliptile (待更新)5.kuangbin 简单搜索 - POJ - 1426 Find The Multiple (简单dfs)

2020-09-28 02:09:31 155

原创 kuangbin 简单搜索 - POJ - 3278 Catch That Cow (简单bfs)

3.kuangbin 简单搜索 - POJ - 3278 Catch That Cow (简单bfs)简单bfs#include<cstdio>#include<iostream>#include<cstring>#include<string>#include<cmath>#include<algorithm>#include<queue>#define IOS ios::sync_with_std

2020-09-28 02:08:37 143

原创 kuangbin 简单搜索 - POJ - 2251 Dungeon Master (三维迷宫问题 bfs)

POJ - 2251 Dungeon Master (三维迷宫问题 bfs)看到三维bfs,当然少不了二维的bfs,先来看看二维bfs的迷宫问题怎么解决。kuangbin 简单搜索 - 迷宫问题 POJ - 3984 (二维迷宫问题 bfs)详情看代码!!!逻辑有点绕,实际上跟二维是差不多的,如果不理解的话可以看看二维的。#include<cstdio>#include<iostream>#include<cstring>#include<stri

2020-09-28 02:05:28 162

原创 kuangbin 简单搜索 - POJ - 1426 Find The Multiple (简单dfs)

5.kuangbin 简单搜索 - POJ - 1426 Find The Multiple (简单dfs)题意:一个正整数n,将被转化为n的一个非零的倍数m,这个m应当符合Earth2的数字规则。可以假定n不大于200且m不多于100位。(无需输出所有符合条件的m,只需要输出任一符合条件的m即可。)题解: (简单dfs)#include<cstdio>#include<iostream>#include<cstring>#include<cma

2020-09-28 02:03:12 133

原创 kuangbin 简单搜索 - POJ - 3087 Shuffle‘m Up(模拟)

kuangbin 简单搜索 - POJ - 3087 Shuffle'm Up(模拟)题意:给定两个长度均为len的字符串s1、s2和一个长度为len×2的字符串s,每一次我们按照编织字符串的操作将s1和s2拼接起来(得到长度为len×2的字符串s’然后令s1为s’的前一半,s2为s’的后一半,反复以上操作。若在某一次中s’和s相等则结束循环。假设有s1=“JNU”,s2=“ACM”,s=“NAMJUC”第一次操作后得到s’=“AJCNMU”,与s不相等。令s1=“AJC”,s2=“N

2020-09-28 01:59:44 151

原创 kuangbin 简单搜索 - POJ - 3414 Pots (bfs)

kuangbin 简单搜索 - POJ - 3414 Pots (bfs)#include<cstdio>#include<iostream>#include<cstring>#include<string>#include<cmath>#include<algorithm>#define IOS ios::sync_with_stdio(false); cin.tie(0); cout.tie(0)#define

2020-09-28 01:52:50 131

原创 12.kuangbin 简单搜索 - HDU - 1241 Oil Deposits

想要去发展自己的宝藏产业,她的宝藏储存地为n*m的矩形,每个位置用*代表空的地方,@代表有宝藏的地方。某些宝藏处相连(最近的八个位置,上下左右,斜线),他们被称为同一块宝藏。问有多少块宝藏处?

2020-09-28 01:36:15 127

原创 kuangbin 简单搜索 - HDU - 1495 非常可乐 (数论是最简单的)

13.kuangbin 简单搜索 - HDU - 1495 非常可乐 (数论是最简单的)(这道题用数论做最简单了,bfs稍后补上!!!)#include<cstdio>#include<iostream>#include<cstring>#include<cmath>#include<algorithm>#define IOS ios::sync_with_stdio(false); cin.tie(0); cout.tie(0

2020-09-28 01:23:31 918

原创 kuangbin 简单搜索 - 迷宫问题 POJ - 3984 (二维迷宫问题 bfs)

迷宫问题 POJ - 3984 (二维迷宫问题 bfs)这道题有两种做法。第一种直接用STL的queue做,但是我做的是用数组模拟队列,试一下新方法。#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<queue>#include<algorithm>using namespace std;typedef pair&l

2020-09-27 21:37:48 143

原创 kuangbin 简单搜索 - POJ 1321 (dfs模板题)

链接:Click here ~~~ 题意及题解: 给定一个棋盘,旗子(都相同)不能放在同一行或者同一列,明显,dfs入门模板题(类似于八皇后问题)。采用dfs算法,可以一行一行搜,也可以一列一列搜索。(以下给出一行一行搜索的方法)用一个二维数组char map[][]数组记录棋盘,用bool cln[] 布尔数组记录这一列是否有棋子,深搜结束条件:搜索到最后一行。判断条件:如果这一列没有棋子且这一行有棋子,就可以放一个棋子,然后继续搜索。(代码有注释,详情可看代码)#include<cstdio

2020-09-27 10:48:03 856

原创 2020中国大学生程序设计竞赛(CCPC) - 网络选拔赛 1005 Lunch (杭电 6892)

2020中国大学生程序设计竞赛(CCPC) - 网络选拔赛 1005 Lunch (杭电 6892)(类尼姆博弈)#include<cstdio>#include<iostream>#include<cstring>#include<cmath>#include<algorithm>#define IOS ios::sync_with_stdio(false); cin.tie(0); cout.tie(0)#define ll

2020-09-22 01:26:45 964

原创 2020中国大学生程序设计竞赛(CCPC) - 网络选拔赛 1011 3×3 Convolution

2020中国大学生程序设计竞赛(CCPC) - 网络选拔赛 1011 3×3 Convolution (杭电 6898)这道题,一眼看过去直接懵逼!!!经过大佬点拨,题意是这样子的:刚开始输出一个数N,输入一个N×N的二维数组再输入一个3×3的二维数组:如果这个二维数组之中,不为零的数字 ≥ 2,则输出一个全为0的二维数组,如果不为零的数字 < 2,那么原样输出第一轮输入的二维数组。注意: 这道题卡输出矩阵最后一个数,不能有空格!!!#include<cstdio>#in

2020-09-22 01:22:15 1935 4

原创 2020中国大学生程序设计竞赛(CCPC) - 网络选拔赛 1010 Reports

2020中国大学生程序设计竞赛(CCPC) - 网络选拔赛 1010 Reports(签到题)如果相邻的任意两个数相同的话,则输出NO,反之输出YES。#include<cstdio>#include<iostream>#include<cstring>#include<cmath>#include<algorithm>#define IOS ios::sync_with_stdio(false); cin.tie(0); cou

2020-09-21 13:09:46 1619

原创 Leetcode (198)打家劫舍Ⅰ,(213)打家劫舍Ⅱ,(337)打家劫舍Ⅲ

打家劫舍Ⅰ题意:线性房屋,不能偷盗相邻的两个屋子。要求偷到的总金额最高题解: 设置一个滚动数组,lll 为nums[0],rrr 为nums[0] , nums[1] 的最大值,maxx = max(l + nums[i], r) 这个就很灵性了。举个例子,如果是[1,2,3]那么在这个过程就是:lll = nums[0] = 1rrr = max(nums[0], nums[1]) = max(1, 2) = 2maxx = max( lll + nums[i], rrr) = ma

2020-09-20 07:47:35 134

原创 Codeforces #668 (Div. 2) A. Permutation Forgery(思维水题)

Rating 800 总目录题目链接入口C++代码:#include<iostream>#include<cstdio>using namespace std; int main(){ int t; cin >> t; while(t--) { int n; cin >> n; int a[100010]; for(int i = 0;i <

2020-09-18 15:00:55 149

转载 Java编码规范总结(腾讯+阿里)

转载自:https://blog.csdn.net/pursue_vip/article/details/89890672以下内容转自他人,总结,感谢他人的分享!!!Java编码规范总结(参考腾讯编码规范)一、java文件组织文件组织规则:由于超过2000行的程序难以阅读,应该尽量避免出现超过2000行的程序。一个Java源文件都包含一个单一的公共类或接口。若私有类和接口与一个公共类相关联,可以将它们和公共类放入同一个源文件。公共类必须是这个文件中的第一个类或接口。文件组织顺序:1.文件注释:所

2020-09-17 21:09:18 621

转载 华为、腾讯C++编码规范

转自https://blog.csdn.net/qq_42550817/article/details/82227564一:华为公司程序设计风格排版1.1 程序块要采用缩进风格编写, 缩进的空格数为4个。说明: 对于由开发工具自动生成的代码可以有不一致。1.2 相对独立的程序块之间、变量说明之后必须加空行。;1.3 循环、判断等语句中若有较长的表达式或语句, 则要进行适应的划分, 长表达式要在低优先级操作符处划分新行, 操作符放在新行之首。1.4 若函数或过程中的参数较长, 则要进行适当的划

2020-09-17 21:07:21 2730

原创 数学(一) 筛质数

筛质数的几种方法从例题 Acwing 868 来看给定一个正整数n,请你求出1~n中质数的个数。输入格式共一行,包含整数n。输出格式共一行,包含一个整数,表示1~n中质数的个数。数据范围1≤n≤1061≤n≤10^61≤n≤106输入样例:8输出样例:4#include<iostream>#include<cstdio>using namespace std;const int N = 1000010;int cnt=0;int prime[N

2020-09-12 11:58:09 247 1

原创 Codeforces #667 (Div. 3) A. Yet Another Two Integers Problem

A. Yet Another Two Integers Problem(水题)题目链接入口 Click here~~题目描述输入a,b两个数,通过a+k或者a-k操作k∈[1,10],将a变成b。输入第一行输入案例个数第二行一次输入 a,ba,ba,b输出输出在n次 a-- 或者 b-- 的操作后,a×b 最小的结果。案例输入案例65 513 4218 41337 420123456789 1000000000100500 9000输出案例032928765

2020-09-05 14:10:08 920

原创 Codeforces #667 (Div. 3) B. Minimum Product

Rating 800 总目录题目链接入口题目描述给定5个数,a,b,x,y,na,b,x,y,na,b,x,y,n,要求满足:a≥x,b≥ya≥x,b≥ya≥x,b≥y,做nnn次 a−1a-1a−1 或者 b−1b-1b−1 的操作,使得 a×ba×ba×b 的结果最小。输入第一行输入案例个数第二行一次输入 a,b,x,y,na,b,x,y,na,b,x,y,n输出输出在n次 a−1a-1a−1 或者 b−1b-1b−1 的操作后,a×b 最小的结果。案例输入案例710 10 8

2020-09-05 12:11:54 281

原创 基础算法(12) —— 位运算

位运算两种简单操作1. 求n的二进制表示中第k位是多少。步骤:①先把第k位移到最后一位 用 n>>k;②看个位是多少n>>k&1#include<iostream>#include<cstdio>#include<string>#include<cstring>using namespace std;int main(){ int n = 10; for(int k = 3; k >

2020-09-03 01:59:32 254

原创 Module1 —— 双指针算法

两个指针分别作用在两个序列(例如:归并排序)两个指针同时作用在同一个序列(例如:快速排序)一般的写法都长这样:for (int i = 0, j = 0; i < n; i++ ){ while (j < i && check(i, j)) j++ ; // 具体问题的逻辑}双指针的核心思想:优化for(int i = 0;i < n;i++) for(int j = 0;j < m;j++)时间复杂度为 O(n2

2020-09-02 14:17:53 182

原创 基础算法(10) —— 差分

一维差分a1,a2,a3,...,ana_1,a_2,a_3,...,a_na1​,a2​,a3​,...,an​ 前缀构造 b1,b2,b3,...,bnb_1,b_2,b_3,...,b_nb1​,b2​,b3​,...,bn​ 差分使得:ai=b1+b2+...+bna_i=b_1+b_2+...+b_nai​=b1​+b2​+...+bn​(对b[ ]求前缀和就是a[ ]);其中:b1=a1b_1=a_1b1​=a1​;b2=a2−a1b_2=a_2-a_1b2​=a2​−a1​;b

2020-09-02 10:14:48 285

原创 基础算法(9) —— 前缀和(一维+二维)

前缀和前缀和的定义:求前n项和例题:给定一个数列 an(1≤n≤100000){a_n}(1≤n≤100000)an​(1≤n≤100000),有 q(1≤q≤100000)q(1≤q≤100000)q(1≤q≤100000)次询问,每次询问树立的第m个元素到第n个元素的和。如果是暴力解法:有q次询问,每次都要扫一遍这个区间,最大时间复杂度是O(q×n)O(q×n)O(q×n)优化:(前缀和)复杂度主要是在:q次查询,就是要扫q次区间。前缀和的思想: 开一个更大的数组,将对区间的查询,转换为对

2020-09-01 00:38:55 204

空空如也

空空如也

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

TA关注的人

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