自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 资源 (6)
  • 收藏
  • 关注

原创 Codeforces Round #666 (Div. 2)题解ABC

A. Juggling Letters题目传送门Juggling Letters题目大意给你n个字符串,让你移动任意次后判断能否让每个字符串相等思路直接统计每个字符串中出现的字符串的个数和,判断和是否为n的倍数AC Code#include<cstdio>#include<algorithm>#include<iostream>#include<cstring>using namespace std;#define endl '\n'

2020-08-31 10:43:46 1640

原创 Dungeon Master(bfs)

Dungeon Master题目传送门Dungeon Master题目大意zjm被困在一个三维的空间中,现在要寻找最短路径逃生!空间由立方体单位构成。zjm每次向上下前后左右移动一个单位需要一分钟,且zjm不能对角线移动。空间的四周封闭。zjm的目标是走到空间的出口。是否存在逃出生天的可能性?如果存在,则需要多少时间?思路相当于一个三维空间的bfs,直接写就行了AC Code#include<cstdio>#include<algorithm>#inclu

2020-08-30 22:15:20 270

原创 棋盘问题(简单dfs)

棋盘问题题目传送门棋盘问题题目大意在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。思路直接开一个数组记录访问每行时,被访问过的列然后dfs每行即可,记得在最后加一个dfs(h+1),避免某行全不满足check后无法进入下一行的问题AC Code#include<cstdio>#include<algorithm>

2020-08-30 20:20:03 184

原创 P3368 【模板】树状数组 2

P3368 【模板】树状数组 2题目传送门P3368 【模板】树状数组 2题目大意给你一个长度为n的数组操作 1: 格式:1 x y k 含义:将区间 [x,y][x,y][x,y] 内每个数加上 kkk;操作 2: 格式:2 x 含义:输出第 xxx 个数的值。思路区间更新,单点查询的树状数组AC Code#include<cstdio>#include<algorithm>#include<iostream>#include<cstri

2020-08-30 17:56:17 135

原创 A Simple Problem with Integers(树状数组)

A Simple Problem with Integers题目传送门A Simple Problem with Integers题目大意给你一个长度为n的数组进行m次操作,操作包括对区间的值进行加减和对区间进行求和思路区间更新,区间查询的树状数组考虑使用更加简单的树状数组,区间更新可以使用差分维护,区间查询可以开两个数组维护int sum1[N];    //(D[1]+D[2]+...+D[n])int\ sum1[N];\ \ \ \

2020-08-30 17:41:43 776

原创 敌兵布阵(树状数组模板题)

敌兵布阵题目传送门敌兵布阵题目大意给你一个长度为n的数组,可以对其单点进行加减操作,可以对区间进行区间求和思路标准的树状数组模板,这里用线段树比较麻烦,听说暴力维护前缀和也能过AC Code#include<cstdio>#include<algorithm>#include<iostream>#include<cstring>using namespace std;#define endl '\n'#define INF 0x3f

2020-08-30 17:03:08 134

原创 树状数组模板

在此只贴出模板,具体的原理参考大佬博客树状数组详解模板int n;int a[N],bit[N]; //对应原数组和树状数组int lowbit(int x){ return x&(-x);}void updata(int i,int k){ //在i位置加上k while(i <= n){ bit[i] += k; i += lowbit(i); }}int getsum(int i){ //

2020-08-30 12:55:48 68

原创 Sleepy Cow Sorting(树状数组)

Sleepy Cow Sorting题目传送门Sleepy Cow Sorting题目大意给你一个长度为n的数组,每次只能移动最前面的那个数字到任意位置求将数组按非递减排序需要的移动的最小次数和每次移动的距离思路可以将给定的数组分为两部分,分别为后半段顺序正确的部分,和前半段顺序不对的部分所以需要改变的即为前半段的部分,即为最优解每次移动的距离为在前半段乱序走过的路径和后半经过的路径,前半段可以自己求,后半段可以使用树状数组维护即将后半段正序部分建立起点权为1的树AC Code#in

2020-08-30 12:54:03 316

原创 Bessie Goes Moo(暴力)

Bessie Goes Moo题目传送门Bessie Goes Moo题目大意一共七个字符,分别为BESIGOMBESIGOMBESIGOM给你n个每个字符对应的数字,可能一个字符对应多个整数求满足(B+E+S+S+I+E)(G+O+E+S)(M+O+O)%7=0(B+E+S+S+I+E)(G+O+E+S)(M+O+O)\%7=0(B+E+S+S+I+E)(G+O+E+S)(M+O+O)%7=0的情况数思路对输入的数,可以先进行取模,即对7模数相同的可以看做一个数然后直接O(n7)O(n^

2020-08-29 21:15:17 300

原创 Educational Codeforces Round 94 (Rated for Div. 2)题解ABCD

A. String Similarity在这里插入代码片题目传送门String Similarity题目大意给你一个n和一个长度为2∗n−12*n-12∗n−1的01字符串,对于给定字符串,你需要构造一个长度为n的字符串,其与原字符串的s[1..n],s[2..n+1],s[3..n+2],...,s[n..2n−1]s[1..n] , s[2..n+1], s[3..n+2], ..., s[n..2n−1]s[1..n],s[2..n+1],s[3..n+2],...,s[n..2n−1]全部相

2020-08-26 19:26:20 381

原创 2020杭电多校第十场题解3、4、11

Mine Sweeper(构造)题目传送门Mine Sweeper思路官方题解给的清清楚楚明明白白AC Code#include<cstdio>#include<algorithm>#include<iostream>#include<cstring>using namespace std;#define endl '\n'#define INF 0x3f3f3f3f#define int long long// #define

2020-08-24 17:52:29 351

原创 Slime and Stones(威佐夫博弈扩展)

Slime and Stones题目传送门Slime and Stones附上大佬博弈博客简单易懂的博弈论讲解(巴什博弈、尼姆博弈、威佐夫博弈、斐波那契博弈、SG定理)题目大意给你两堆石子,每次可以单独拿一堆中的任意值,或者两堆都拿,但是两堆拿的值需满足∣x−y∣≤k|x−y|≤k∣x−y∣≤k思路显然的威佐夫博弈的扩展威佐夫博弈中如果想拿两堆的话,拿的石子必须相同,即x=yx=yx=y也就是从原来的y=x+ky=x+ky=x+k变成了y=x+d∗ky=x+d*ky=x+d∗k,所以根据

2020-08-23 19:25:13 421

原创 2020杭电多校第九场题解A、C

Tree题目传送门Tree题目大意给你一个具有n个结点的树,以1为根结点,输入n-1个数分别为父节点让你创建一条边,使得(x,y)(x,y)(x,y)对(指x能到y)尽可能的多思路显然添加的这条边必然是添加在叶结点到根结点的,这样可以使得根结点到该叶结点的所有结点的对数全变为n所有,首先dfs求出所有的点的子结点的个数,然后dfs找取叶结点连接根结点取最大值即可AC Code#include<cstdio>#include<algorithm>#include

2020-08-23 19:23:54 323

原创 Painting the Barn(二维前缀和,二维差分)

Painting the Barn(二维前缀和,二维差分)题目传送门Painting the Barn题目大意在一个二维平面上,给你n个矩阵,每个矩阵给你左下角和右上角的点,代表矩阵覆盖的面求被覆盖了k次的面积思路二维前缀和,vis[i][j]+=vis[i−1][j]+vis[i][j−1]−vis[i−1][j−1];vis[i][j]+=vis[i-1][j]+vis[i][j-1]-vis[i-1][j-1];vis[i][j]+=vis[i−1][j]+vis[i][j−1]−vi

2020-08-23 13:55:20 603

原创 Codeforces Round #665 (Div. 2)题解ABC

A. Distance and Axis题目传送门Distance and Axis题目大意给你一个点a的坐标n,求点b的坐标,使得∣OB−∣AB∣∣=K|OB-|AB||=K∣OB−∣AB∣∣=K思路先判断n和k的大小关系b在OA中每移动一个点改变的大小为2,所以判断n−kn-kn−k的奇偶性即可AC Code#include<cstdio>#include<algorithm>#include<iostream>using namespace

2020-08-22 12:20:32 1036

原创 2020杭电多校第八场题解

Clockwise or Counterclockwise题目传送门Clockwise or Counterclockwise题目大意给你三个点ABC,判断A->B->C的方向(逆时针或者顺时针)思路叉积/*A(x1,y1) B(x2,y2) C(x3,y3)向量AB=(x2-x1,y2-y1)向量AC=(x3-x1,y3-y1)若 AB x AC < 0 则 ABC 顺时针若 AB x AC > 0 则 ABC 逆时针若 AB x AC = 0 则 AB、

2020-08-20 22:05:39 334

转载 Hexagon(找规律)

思路实在不会这种,看大佬博客吧HexagonAC Code#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>#include <vector>#include <queue>#include <iostream>#include <map>#include <string>#inclu

2020-08-20 22:01:22 262

原创 Codeforces Global Round 10题解ABCD

A. Omkar and Password题目传送门Omkar and Password题目大意给你一个长度为n的数组,每次可以合并两个相邻且不同的数,问最后数组最小的长度思路其实答案只有1或者n,因为全部一样肯定是n,如果有一个不一样,它可以和其他的结合到最后为1AC Code#include<cstdio>#include<algorithm>#include<iostream>using namespace std;#define endl

2020-08-20 18:49:27 221

原创 2020杭电第七场题解Increasing and Decreasing、Game、Jogging

Increasing and Decreasing题目传送门Increasing and Decreasing思路官方题解已经给的很清楚了,直接分块构造就行AC Code#include<cstdio>#include<algorithm>#include<iostream>using namespace std;#define endl '\n'#define INF 0x3f3f3f3f#define int long long// #de

2020-08-18 00:28:07 201

原创 Educational Codeforces Round 93 (Rated for Div. 2)题解A、B、C、D

A. Bad Triangle题目传送门Bad Triangle题目大意给你一个长度为n的数组,让你从中选出i,j,ki,j,ki,j,k,满足1≤i<j<k≤n1≤i<j<k≤n1≤i<j<k≤n,其中ai,aj,aka_i,a_j,a_kai​,aj​,ak​不能构成一个三角形思路将序列排序后直接判断第一个,第二个和最后一个能不能构成三角形即可AC Code#include<cstdio>#include<algorithm>

2020-08-15 12:09:47 1904 1

原创 2020牛客暑期多校训练营(第九场)题解A、I、F、K、E

A Groundhog and 2-Power Representation题目传送门Groundhog and 2-Power Representation思路大数,python,直接在计算幂的地方替换python的幂次计算(**),然后用eval函数计算即可AC Codeprint(eval(str(input()).replace('(', '**(')))I The Crime-solving Plan of Groundhog题目传送门The Crime-solving Pla

2020-08-14 00:44:03 412

原创 Codeforces Round #664 (Div. 2)题解ABCD

A. Boboniu Likes to Color Balls题目传送门Boboniu Likes to Color Balls题目大意给你四种颜色的球,给你一种操作:选择前三种各一个,将这三个变成最后一种,你可以执行任意次该操作问,球的数量可不可以形成回文思路分情况考虑一下球的奇偶性就行,奇数有0个,1个,4个都是可以的,奇数为3个的时候就需要分别考虑了,如果其中无0的话直接将前三个转成最后一个,就是三偶一奇了,有0的话只能在d上,不然就NOAC Code#include<cstd

2020-08-13 10:15:20 1389

原创 2020牛客暑期多校训练营(第十场)A、E、D Hearthstone Battlegrounds

A Permutation题目传送门Permutation题目大意给一个质数p,求一个1~p-1的排列,满足xi+1≡2xi(p mod) or xi+1≡3xi(p mod)x_{i+1}\equiv2x_i (p\ mod)\ or\ x_{i+1}\equiv3x_i (p\ mod)xi+1​≡2xi​(p mod) or xi+1​≡3xi​(p mod)思路因为2xi(mod p)2x_i (m

2020-08-12 18:27:35 189

原创 Matrix-Tree 定理(基尔霍夫矩阵树定理)求图生成树个数

作用Matrix-Tree 定理作用:给定 n 个点 m 条边的无向图,求图的生成树个数。结论对于已经得出的基尔霍夫矩阵,去掉其随意一行一列得出的矩阵的行列式,其绝对值为生成树的个数Code其中mat为基尔霍夫矩阵,n为点的个数。(for循环也可写作2~n)ll gauss(int n, ll mat[][N]){//求矩阵K的n-1阶顺序主子式 ll res=1; for(int i=1;i<=n-1;i++){ for(int j=i+1;j<=n

2020-08-12 13:14:16 960

原创 2020杭电多校第六场Expectation

Expectation题目传送门Expectation题目大意给你一个无向图,有n个点,m条边,每个边的边权为wiw_iwi​ ,定义树的权为树的所有边的边权的按位与。现在我们随机选择该图的一个生成树,问其生成树的权期望是多少。思路先看一下官方题解很明显的矩阵树,因为是按位与计算,每一个位相互独立,所以对于每一位都需要建立一个其含该位的边的基尔霍夫矩阵,求得该位下可以得到的生成树的个数,按照题解中,每位对答案的贡献即为ans∗2isumans*\frac{2^i}{sum}ans∗sum2

2020-08-12 13:05:17 251

原创 2020杭电多校第六场题解Road To The 3rd Building、Little Rabbit‘s Equation、A Very Easy Graph Problem、Divisibilit

Road To The 3rd Building题目传送门Road To The 3rd Building题目大意给你n个数字,然后从中间选一个区间,区间的平均值为1j−i+1∑k=ijsk.\frac{1}{j−i+1}∑^j_{k=i}s_k.j−i+11​∑k=ij​sk​.求区间的期望思路官方题解很容易理解不过有些人不喜欢看官方的题解(比如我)所以还是写一下1、这里区间的是未知的,所以肯定需要枚举区间的长度2、我们只需要求得每个长度下的幸福值出现的和,然后乘上区间长度的逆元即可

2020-08-11 21:40:21 123

原创 2020年杭电多校第五场题解Tetrahedron、Boring Game、Paperfolding、Set1

Tetrahedron(数学推导,逆元)题目传送门Tetrahedron思路公式的推导,显然可以得到1h2=1a2+1b2+1c2\frac{1}{h^2}=\frac{1}{a^2} + \frac{1}{b^2} + \frac{1}{c^2}h21​=a21​+b21​+c21​对于期望的计算,因为a、b、c是等价的,所以可以直接计算1a2\frac{1}{a^2}a21​的期望然后乘以3而1a2\frac{1}{a^2}a21​的期望:(112∗1n+122∗1n+......+1(

2020-08-07 00:20:13 225

原创 Codeforces Round #661 (Div. 3)题解A、B、C、D

A. Remove Smallest题目传送门Remove Smallest思路注意到数据范围很小(1≤ai≤1001≤ai≤1001≤ai≤100),求得输入的数组中的最小值和最大值,从最小到最大走一遍,看是不是其中的每个值都有,若无则NO,全有则YESAC Code#include<cstdio>#include<iostream>#include<cmath>#include<cstring>using namespace std;

2020-08-06 19:47:46 200

原创 F Fake Maxpooling(单调队列)

题目传送门Fake Maxpooling题目大意对于一个n∗mn*mn∗m的矩阵,每个位置的值为Aij=lcm(i,j)A_{ij}=lcm(i,j)Aij​=lcm(i,j)求每个大小为k∗kk*kk∗k的子矩阵的最大值的和思路直接暴力的话复杂度会很高,所以可以采取单调队列维护区间最大值代码#include<cstdio>#include<iostream>#include<cstring>#include<queue>usi

2020-08-06 11:14:31 232

原创 2020牛客暑期多校训练营(第二场)C、D、F

C Cover the Tree题目传送门Cover the Tree题目大意给定一个无根树,求最小链数去覆盖书上所有的边。输出最小数字和其中任何一个解决方案思路很显然要去找到所有的叶结点并且将其覆盖,所以先找到一个非叶结点,从此结点出发去寻找其他的叶节点,偶数直接输出结点个数的一半即为最小链数,奇数则向上取整AC Code#include<cstdio>#include<iostream>#include<vector>using name

2020-08-05 22:27:19 164

原创 Go Running(二分图最小点覆盖 网络流)

题目传送门Go Running题目大意视跑道为轴,有若干学生在上面跑步学生的跑步起止时间和方向和起始位置均未知,速度为1m/s1m/s1m/s有n个监控,监控会给出 t 和 x,表示当时间为t 的时候,x位置上至少有一个学生求当前跑道最少有多少学生思路可以将学生视为点,每次监控到的学生可以有两种来源(x-t)或者(x+t),每个学生都可以用一条斜率为1或者-1的直线去覆盖,则问题可以转化为直线最少有多少条,可以用二分图将(x-t)和(x+t)分别放在两边,再用网络流求一下最小覆盖A

2020-08-05 18:44:31 711

原创 I Interesting Computer Game(并查集)

I Interesting Computer Game题目传送门Interesting Computer Game思路将每次输入的a和b当做点,将其连成一条边,很明显的对于形成的连通块来说,如果无环就只能取到当前连通块的顶点减一的点,如果连通块内存在至少一个环,即可将该连通块取完,所以我们只需要判断连通块有无环同时我们注意到数据的范围为1≤ai≤1091 \le a_i \le 10^91≤ai​≤109 1≤bi≤1091 \le b_i \le 10^91≤bi​≤109所以要采取离散化的

2020-08-04 23:54:55 198

原创 2020牛客暑期多校训练营(第八场)题解I、K、G

I Interesting Computer Game题目传送门Interesting Computer Game思路将每次输入的a和b当做点,将其连成一条边,很明显的对于形成的连通块来说,如果无环就只能取到当前连通块的顶点减一的点,如果连通块内存在至少一个环,即可将该连通块取完,所以我们只需要判断连通块有无环同时我们注意到数据的范围为1≤ai≤1091 \le a_i \le 10^91≤ai​≤109 1≤bi≤1091 \le b_i \le 10^91≤bi​≤109所以要采取离散化的

2020-08-04 00:44:28 427

原创 等级之题N2&N1(8.3)题解

等级之题N2(8.3)题目传送门等级之题N2(8.3)思路很明显的推公式:首先根据题目很容易就可以得出这个公式(πr12+πr22)+2S=π(r1+r2)2(πr_1^2+πr_2^2)+2S=π(r_1+r_2)^2(πr12​+πr22​)+2S=π(r1​+r2​)2然后化简为r=r1+r2=2∗(Sπ)12r=r_1+r_2=2*(\frac{S}{π})^\frac{1}{2}r=r1​+r2​=2∗(πS​)21​代码#include<cmath>#inclu

2020-08-03 20:53:32 225

原创 2020牛客暑期多校训练营(第一场)题解F、J

F Infinite String Comparision题目传送门Infinite String Comparision思路直接跑两次最长的那个字符串即可判断大小关系代码#include<cstdio>#include<iostream>#include<cmath>using namespace std;const double pi = acos(-1.0);#define INF 0x3f3f3f3f// #define TDS_ACM

2020-08-02 23:42:01 265

原创 牛客多校第七场 H Dividing

H Dividing(除法分块)题目传送门Dividing思路看一下上图,稍微推一下其实很容易就能发现规律了, 每列的公式为n∗kn∗kn∗k 或者 n∗k−(n−1)n∗k−(n−1)n∗k−(n−1),n为N的行,直接跑O(n)的话很明显T了,所以我们讲将公式换一种方式写一下:∑i=1n(n/i)+∑i=2n(n−1)/i+k−1∑^n_{i=1}(n/i)+∑^n_{i=2} (n-1)/i+k-1∑i=1n​(n/i)+∑i=2n​(n−1)/i+k−1很明显的除法分块(∑i=1

2020-08-02 21:57:46 199

原创 2020牛客暑期多校训练营(第七场)题解DBH

D Fake News题目传送门https://ac.nowcoder.com/acm/contest/5672/D思路提前打了一下表,发现好像就1和24可以,试了一下A了附上大佬的证明:如何证明 1²+2²+…+n² 为平方数的解只有 n=1 或 n=24?代码#include<stdio.h>int main(){ int T; scanf("%d", &T); while(T--){ int n; scan

2020-08-02 19:09:10 264

原创 2020杭电多校第四场1002、1004、1005,1011、1012、1007

2.Blow up the Enemy题目传送门Blow up the Enemy思路儿子肯定直接选价值最大的武器(即为最小次数打出100伤害),张三如果不选相同次数即可打出100伤害的武器就会输,所以我们统计武器中最快打出100伤害的武器的个数k,k/2nk/2nk/2n即为儿子输的概率,求儿子赢的概念为1−k/21-k/21−k/2代码#include<cstdio>#include<iostream>#include<algorithm>#in

2020-08-01 11:26:06 199

格斗类游戏软件——抽象工厂模式

现在需要设计一款格斗类游戏软件,为了适应不同等级玩家的需要,游戏特地安排了三个难度级别: ①初等级别:敌方士兵反应迟钝,怪兽步履缓慢,即便是初学者也能够很轻松地取胜; ②中间级别:敌方士兵反应适度,怪兽步履速度中等,中级玩家有可能取胜; ③高难级别:敌方士兵反映敏捷,怪兽狰狞狡诈,就算是高级玩家也难逃被击毙的厄运。

2022-05-09

一元稀疏多项式的计算.docx

能够按照指数降序排列建立并输出多项式;能够完成两个多项式的相加、相减,并将结果输出;   要求:以链式存储结构实现多项式。

2021-03-09

校园导游咨询(图的应用).docx

设计一个校园导游程序,为来访的客人提供各种信息查询服务。 (1)设计学校的校园平面图,所含景点不少于10个,以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息; (2)提供基本信息的修改功能; (3)为来访客人提供图中任意景点相关信息的查询; (4)为来访客人提供景点的问路查询,即已知一个景点,查询到某景点之间的一条最短路径及长度。

2021-03-09

哈夫曼编码/译码系统(树应用)

利用哈夫曼编码进行通信,可以压缩通信的数据量,提高传输效率,缩短信息的传输时间,还有一定的保密性。现在要求编写一程序模拟传输过程,实现在发送前将要发送的字符信息进行编码,然后进行发送,接收后将传来的数据进行译码,即将信息还原成发送前的字符信息。

2021-03-09

停车场管理(栈和队列).docx

设停车场是一个可以停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次有北向南排列(大门在最南端,最先到达的第一车停放在车场的最北端),若车场内已停满n辆车,那么后来的车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。

2021-03-09

单位员工通讯录管理系统.docx

为某个单位建立一个员工通讯录管理系统,可以方便查询每一个员工的办公室电话、手机号、及电子邮箱。其功能包括通讯录链表的建立、员工通讯信息的查询、修改、插入与删除、以及整个通讯录表的输出。

2021-03-09

空空如也

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

TA关注的人

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