自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 [python]--列表,元组,字典,集合

列表,元组,字典,集合

2022-06-06 21:10:27 178

原创 进阶实验 3-3.2:银行排队问题之单窗口“夹塞”版

想了一段时间,实在不知道该怎么下手… 太菜了…只能看别人的,然后加点解释了 ┭┮﹏┭┮看的此博主的把一个朋友圈的映射为同一个编号。结构体记录每个人的信息:姓名,开始,处理,属于的块号维护两个变量:结束时间,等待时间。每次队列循环只处理一个人 怎么找到那个人呢? 第一遍循环:看 在e之前 ,是否存在同一个朋友圈的,如果存在,存入队列,结束。第二遍循环:若第一遍没有找到同一个朋友圈的,则按顺序找到第一个没有访问过的人即可 #include<bits/stdc++.h>usi

2022-03-25 22:34:18 226

原创 马拉车模板

方便捡起的水博客用到的数据:1.回文半径 . 回文直径 ,并生成回文半径数组 pArr2.之前扩的所有位置中,所到的 最右回文右边界 R3.取地更远半径时 中心点在哪? C情况1:当前点,没有在 最右回文边界里 ; 暴力扩情况2:当前点,在 最右回文边界内部, (c一定在i的左侧)根据 i关于c的对称点i’ 的位置进行讨论:2.1: [L ( i’ ) c i R]i’的 回文区域 在[L,R]里, 则可得到 i

2022-03-23 18:53:28 98

原创 判断平衡,搜索,完全,满二叉树+没有上司的舞会(派对最大欢乐值)

单纯记录一下,防止遗忘若对您也有帮助,那再好不过了。接下来的判断环节都会有的一份代码:#include<bits/stdc++.h>using namespace std;typedef long long ll;#define rep(i,j,n) for(int i=j;i<=n;i++)typedef struct node{ int data; struct node *l,*r;}*BiTree;void CreatTree(BiTree &T)

2022-03-13 21:39:13 1462

原创 Array Shrinking(区间DP)

题目大意:对数组进行任意次操作:选择相邻且相等的数,合并成一个比原来大1的数问:数组的最小长度是多少?思路:区间DP用dp[1][n]来记录最终的答案经典的转移方程:dp[i][r]=min(dp[i][r],dp[i][k]+dp[k+1][r]),但没考虑如何合并.怎样考虑合并呢?从最原始的数组上观察,若[i,i],[r,r]区间长度为1,并且[i,i],[r,r]的值相等且相邻,那么就可以对[i,r]区间进行合并,合并后得到一种新状态。怎样记录并表示新状态呢? 引入俩数组:1.dp

2022-03-11 17:38:06 236

原创 拓展欧几里得

证明啥的,已经有很多博客了。单纯记录一下理解运用的过程。(可能有误~)通过 exgcd(a,b,x,y) 后我们能够得到的是:1.:关于不定方程 ax+by=gcd(a,b)的特解, x=1,y=0;2. d=gcd(a,b);(判断有无解)而题目给定的c,可能等于 Ngcd(a,b);因此 需要对 ax+by=gcd(a,b) 进行处理,利用这个式子得到 ax+by=c的有关信息。两边同乘 N,便得到 a 乘Nx+b 乘Ny=N 乘gcd(a,b).若有解的话,c是等于Ngcd(a,b)的

2022-02-08 15:54:19 308

原创 逆元(费马小+欧拉+拓展欧几里得+递推)

逆元的定义:a*x≡1(mod m),称x为a在模m下a的逆元;求逆元的几种方法:1.费马小定理:应用条件:m是质数,a,m是互质的正整数,即gcd(a,m)=1;则 a的逆元为:a^(m-2).应用快速幂求解 a的逆元.int qpow(ll a, ll b) { int ans = 1%mod, base = a; while (b) { if (b & 1) ans = ans * base % mod; base = base * base % mod; b &

2022-01-17 17:36:21 354

原创 单调栈整理

题目: Sub Matrix Sum题意: 输入矩阵和k,找到一个子矩阵,使得子矩阵的和不小于k,找到子矩阵最小(L*R)大小。思路:1.将矩阵输入成矮胖型的2.得到每列的前缀和3…代更题目: Feel Good题意: n个数,找到一个区间,使得 这段区间的和*这个区间中的最小值 最大。单调栈的典型应用了:求某组数以其中某一个数字为最小值的最大延伸区间。...

2021-10-27 20:31:04 89

原创 练习赛14-D

题意:正方形,四个边,每个边有两个字符表示,两种形式1.00表示不能与任何边相连2.A+与A-相连,B+B-相连…给出n种正方形,每种正方形的数量有无限多个,并且可以旋转,判断给定的正方形是否能无限连接(只在二维平面内)思路:1.将正方形的边看成点,2.将每个点的字母映射成数字,A+ ----->2n,A- ----->2n+13.彼此能到的点就建边,相连的正方形间的点可以彼此到达4.每给定一种正方形,就将正方形的每个点,与正方形的另外三个点 相连的点 建边,表示点之间可以到达

2021-10-14 19:51:42 104

原创 OJ第七套组队赛

Alphabetic Road Trip/*整体步骤: 1存点 2.将城市名城映射成城市编号(输入顺序) 3.存边 4. 距离初始化为无穷 5. 把所有起点为'A'的城市 装入队列中,距离初始化为 0 (队列中存入的的信息: ( (到源点的距离,当前节点编号) ,节点城市首字母的下一个字母对应的数字)) 并且在处理经过而不访问时 不会改变这个数字,访问时才修改6.算法处理了... 7.输出结果dist[i][j]含义: j节点城市 到 以i字母(映射成数字了)开头的城市 的

2021-09-21 21:25:39 157

原创 纪念品(背包

题目:纪念品#include<bits/stdc++.h>using namespace std;typedef long long ll;#define rep(i,j,n) for(ll i=j;i<=n;i++)ll aa[111][111];ll dp[11111];int main(){ ll t,n,m; cin>>t>>n>>m; rep(i,1,t) rep(j,1,n) cin>>aa[i][j];

2021-08-22 18:32:11 186

原创 背包背包入门

01背包://每个物品只有一件int dp[1100]; int n,m; int v[1100],w[1100]; void solve(){ cin>>n>>m; for(int i=1;i<=n;i++) cin>>v[i]>>w[i]; for(int i=1;i<=n;i++) for(int j=m;j>=v[i];j--) dp[j]=max(dp[j],dp[j-v[

2021-08-22 18:29:39 76

原创 线段树+面积并

#include<bits/stdc++.h>using namespace std;typedef long long ll;#define rep(i,j,n) for(ll i=j;i<n;i++)const ll maxn=1000;class Edge{ public: ll x1,x2,h,f; Edge(ll a=0,ll b=0,ll c=0,ll d=0):x1(a),x2(b),h(c),f(d){ }};Edge e[maxn*2];ll x[

2021-08-12 18:15:54 93

原创 线段树--(入门新手)

建树,单点更新,求和#include<bits/stdc++.h>using namespace std;typedef long long ll;#define rep(i,j,n) for(int i=j;i<=n;i++)#define max_l 1000void build_tree(ll aa[],ll tree[],ll node,ll start,ll end) { if(start==end) tree[node]=aa[start]; else {

2021-08-11 12:43:28 86

原创 Shuffle Permutation--(并查集)

原题链接:http://icpc.upc.edu.cn/problem.php?cid=2861&pid=4大致题意:行(列) 满足 题目条件 便可以交换,问能得到多少种矩阵。思路:1.以行为例,有a,b,c三行,a和b行可交换,b和c行可交换,那么a和c行可交换,可以认为 a行可以b行过渡到原来c行的位置。2.将所有可交换的行(列),放到一个连通块中,每个连通块的数量为所含块数的阶乘,最后相加即可。代码:(含注释)/*favt[] 储存阶乘p[] 记录祖先节点sz[] 储存连

2021-08-11 12:35:30 75

原创 几种树状数组

1.单点修改,区间查询题面:给定数列a[1],a[2],…,a[n],你需要依次进行 q个操作,操作有两类:1 i x:给定i,x,将a[i]加上x;2 l r:给定l,r,求 ∑ri=la[i]的值(换言之,求a[l]+a[l+1]+⋯+a[r]的值)Input第一行包含2个正整数n,q,表示数列长度个数,保证a≤n,q≤106第二行n个整数a[1],a[2],…,a[n],表示初始数列,保证|a[i]|≤106接下来q行,每行一个操作,为下列两种之一:1 i x:给定i,x,将a[

2021-08-09 18:41:18 127

原创 二分写法及应用题型

原题:Interesting drink#include<bits/stdc++.h>using namespace std;typedef long long ll;#define rep(i,j,n) for(ll i=j;i<=n;i++)const ll maxn=1e5+9;ll n;ll aa[maxn];/*//1.普通二分查找某 数x 的位置 ll f(ll x){ ll l=1,r=n,mid; while(l<=r){ mid=(l+r

2021-07-25 21:13:36 124

原创 2021-07-25 Ordering Tasks--拓扑排序--两种方式(暂时

题目名字:Ordering Tasks拓扑排序重要两点:1.输出入度为0的点2.将与该点相连的点的入度减一1.过OJ的//////////////////注释**********x表示前面还有待排的数(不一定是数)的数量(可视为入度然后排好序好 存入aa数组,最后输出y疑惑::::下标和x,y的含义有点混不太明白此结构体,感觉不像是个结构体。。。#include<bits/stdc++.h>using namespace std;typedef long long ll;

2021-07-25 10:55:28 108

原创 C. Maximal GCD

C. Maximal GCD题意:输入 n k, 构造一个k个数的数列,k个数和为n,并使这k个数的最大公约数最大****注释都在代码里了~/* 首先是 范围 n,k都是1e10 ,1.如果k 是按照1,2,3……的顺序 组成数列,那么根据等差数列求和得k*(k+1)/2,这个和要小于等于n得范围,计算得k要小于 1414202.在就是 如果 如果组成的最小数的和 都大于 给定的n以上两种情况 无法符合题意,输出 -1else 假如数A是所有数的 公约数, 那么A也是n的因子,

2021-03-18 23:51:17 105

原创 OJ 吴永辉3-4

D题题意:给出m个长度为n的字符串,按照度量值排序即可。什么是度量值呢??::统计每个字符串中 在当前字母后面的字母中,比当前字母字典序小的字母的数量。思路:定义一个结构体,包含一个字符串和记录数量的变量,在记录每个串的度量值,结构体排序输出即可。#include<iostream>#include<bits/stdc++.h>using namespace std;typedef long long ll;#define rep(i,j,n) for(ll i=j.

2021-03-14 19:44:01 239

空空如也

空空如也

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

TA关注的人

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