自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 codeforces 820

题意:规定你从第一块瓷砖出发,通过跳跃到达最后一个瓷砖,每个瓷砖对应一个字符,从一个字符跳跃到另一个字符的成本是 |index(si)−index(sj 例如 index (‘ a’) = 1,index (‘ b’) = 2,... ,index (‘ z’) = 26,问:求出使用最小成本并且尽可能多的踩瓷砖,输出最小成本和一次踩的瓷砖。题意:给你一个字符串s,对于字符串上的每个字母用其对应的数字符号表示,标号是个位的直接用其表示,标号是两位数在后面加上一个0来表示。给予你最终串,得到其原串。

2022-09-13 11:31:07 531 1

原创 第一周一本通贪心合集

思路:在第一个物品进行A工序时不会出现时间重复的物体,最后一个物品在进行B工序时同样不会有时间重复的情况,中间的物品的话会出现时间重复问题,一般是对于第K各部件的A工序的处理时间会和K - 1的部件的B工序处理时间会重复,第K个部件的B工序的处理时间会和第K + 1个部件的处理时间重复,甚至还会K - 2 和K + 2有时间重复问题,中间的部件加工会出现排序不同时间相同的情况,每次合并最小的两个最后得到的是最大的,而每次合并最大的两个的时候最后得到的是最小的。...

2022-09-01 16:30:05 230

原创 codeforces 815 A、B

题意:两个人分别从左上角和左下角出发最终到达右下角和右上角,走过的路可以标记上传送,从某个位置传动到另一个被标记的地方只消耗一个能量,其他的移动是每次消耗一个能量移动到相邻的点,问两人到达终点总共消耗多少能量。题意:通过给定的限制,确定一个最美的数组并输出(输出顺序没有限制),数组中一共n和元素,数组中元素总和是s,数组中每个元素除以k之后数组的总和是b。存在的情况:1、只需构成一个满足b * k 的元素,其他剩余的 s - k * b 只需要在最后的元素中分配一下,并且不高于k即可。

2022-08-23 10:27:06 193

原创 2022山大“地炜杯”补题

最后的结果是17, 本身以为是一个bfs的题,发现不是很容易有递归,之后发现是一个构造题,当输入 n

2022-08-18 21:14:17 140

原创 codeforces 814补题

当n和m都是偶数时: 所以(n + m - 2)是偶数,对于两条边分别是奇数,由于移动的距离必须是奇数,对于向右移动时,一定是先手(Burenka)先到达【1, m】,之后的向上操作先手(Burenka)变成了后手,后手(Tonya)变成了先手移动,之后的总距离是奇数,所以一定是先手(Tonya)到达,同理四种情况可以被(n + m - 2)分成两种。题意:给定n 和 k, 从1 - n的数中(n确保是偶数)分别拿出两个数a 和 b,使得其满足(a + k)* b可以被4整除(取余于4余数是0)...

2022-08-17 23:30:21 371

原创 细节知识记录

注意:在输出是会有一些细节的cin的细节,建议在真正比赛中尽量的scanf和printf来进行输入和输出,即节省时间,有不会出现一些输入格式的错误,string的带空格输入用getline(cin),s);//时间复杂度是 O(n) 朴素算法是O(n ^ 2)埃氏筛法,O(nloglogn)的算法(感觉没必要用)//例子: 设n的二进制表示是 111011000 n >> 3 最终表示的是 111011。//类同与set的去重,使用比set方便点儿。//手写哈希表 (直接拿的y总的 ^-^)...

2022-08-11 11:54:02 87

原创 2022年暑假训练赛(哈理工)

思路:首先找出给定字符串的所有的孤独段,并记录下长度(因为0对其没有用,可以直接忽略),然后对子串进行枚举,依次寻找最大的孤独值(切记这里不可使用前缀和,因为是按照截取之后的子串来规定奇数和偶数孤独段的,所以需要一次枚举判断, 注意数据范围)题意 : 当数组中最大值是K的时候,找出所以的单调非递减的数据的组成方式,按照规定计算出总价值(一个数组的价值就是以k为最大值的数组的方案数 * k (最大值))3.减法取模:(A-B)%P=(A%P-B%P+P)%P;思路:一个简单的贪心题(签到题),并不难。...

2022-08-09 16:45:32 152

原创 快速幂模板 + 快乘模板 + 取模方式

快乘模板 : a * b % mod 当 a 和 b 很大,超出了longlong 的范围的时候,解决的方式是,使用快乘模板。快速幂模板(使用的较多, 时间复杂度是O(logn),朴素的写法复杂度是 O(n))(A-B)%P=(A%P-B%P+P)%P;4.整除取模:费马小定理:(A\B\P)......

2022-08-08 10:47:34 122

原创 土地恢复(贪心)

他负责恢复的是一条长度为n的土地,恢复土地的主要工作是填平下陷的地表。需要恢复的土地可以看作是n块首尾相连的区域,一开始,第i块区域下陷的深度为di。思路最朴素的模拟算法是通过不断的从前向后走,一步一步的增加,但是由于数据范围为10的5次方,所以行不通,最后还是数学归纳法来解题,宣文胜的家乡山西省是我国的产煤大省,因为长期挖煤导致了他家乡的某些地方出现了地陷的情况。对于100%的数据,1≤n≤100000,0≤di≤10000。对于80%的数据,1≤n≤1000;...

2022-07-22 10:58:51 89

原创 暑假团队赛3

目录A . Exact ChangeC . Fold the Paper NicelyF . Call Me MaybeH . Rummy Score I . Simi Circles A . Exact Change题意:在已知的所有的的数字中,从1开始第一个无法通过已知数字表示的,可以加,不可以减思路:将已知的数字进行升序排序之后的,可以找到一个规律:当所要判断一个数的时候,当这个数小于前面的数的总和+1是可以直接加上,若是大于,直接就无法表示ans+1,此时直接退出在输出就可以代码:C . Fo

2022-07-11 11:13:31 79

原创 暑假团队训练赛2

目录A . T9 CrazinessB . Pair IsogramsE . Waterford WackinessG . Common Patterns I . Symmetric Diagonals题意:给定字母与数字之间的匹配规则,已知一些单词,通过给与的数字编码对应译成字符串,有几种情况,对应三种规定的输出思路:最初的想法是通过将数字编码译成字符串,在和已知的单词字符串进行一一对应查询,但是这样操作太过于复杂,可以采取逆向求法,先将已知的单词字符串译成数字编码,在进行对应查询会简单很多代码:(注意:

2022-07-09 09:09:45 400

原创 暑假团队训练赛1

目录B Good Coin Denomination C Cameron's Crazy Circles D Matrix Transformation E Sorry About That, Chief! F Knight Moves-Gold Edition 题意:判断数组是否是一个特殊数组,特殊数组的定义是对于a[i]*2==a[i+1] (1

2022-07-09 08:45:18 137

原创 T9 Craziness(模拟)

题意:给出的一些已知字符串,在数字编码对应的情况下翻译给出的数字译码思路:第一次尝试的时候,是想着如何把给出的数字译码翻译出来再进行一一对应比较,但是后来发现情况太多不好操作,采用逆向方法来进行操作更加的简单,将给出的字符串按照对应关系翻译成数字译码,在进行比较,不是一个很难的题用到了stl中的stringsteam来进行字符串空格键的分割,很好使,不用跑循环代码:...

2022-07-06 15:31:29 145

原创 升级版井字棋(迭代搜索)

题意:通过这8种操作得到最后棋盘中间的8个数字都一样思路:迭代加深搜(省时间)

2022-07-05 21:27:06 476

原创 Knight Moves-Gold Edition(dfs)

题意:在一个棋盘中一个棋子的移动方式为象棋中马的移动方式,该棋子有8中可移动的方法,问从一点到另一点通过这个中棋子的移动方式最少走多少次思路:基于图论上的操作,最初的思路通过dfs跑,找到最少的移动次数,但是一直超时,可以使用迭代搜索来寻找到最短的路线(更加节省时间),有题比较简单,迭代搜索写着也就没什么麻烦代码:...

2022-07-05 21:22:27 89

原创 Sticks(迭代搜索)

题意:(经典的迭代dfs搜索)有许多未知数目的相同木棍被“随意”的切割分成很多段,让你寻找出棍子可能存在的最小长度思路:通过题意理解,可能出现多种匹配的方法,最先想到的是进行dfs,但是对于此题最基本的dfs超时,这就需要我们使用迭代搜索,类似有bfs但是实则是一种更省时间的dfs来操作通过访问数组中储存的被切过得棍子的长度来不断重建棍子,直到找到最终的棍子最佳长度和数目代码:...

2022-07-05 21:10:00 328

原创 线段树(模板)

#include<bits/stdc++.h>using namespace std;typedef long long ll;const int x=1e5+5;int a[x];//利用线段树完成单点修改和区间查询//以洛谷P3372为例(典型的线段树单修和区查的例题) struct node//用结构体来储存线段数的信息 { int l,r;//m每个点有一个左右区间 ll sum,lazy;//代表这个节点的数据总和 }tree[x*4];void bui.

2022-03-02 18:02:54 88

原创 单调队列+单调栈(stl使用结合)

广告印刷(模板题)Description最近,afy决定给TOJ印刷广告,广告牌是刷在城市的建筑物上的,城市里有紧靠着的NN个建筑。afy决定在上面找一块尽可能大的矩形放置广告牌。我们假设每个建筑物都有一个高度,从左到右给出每个建筑物的高度H1,H2…HNH1,H2…HN,且0<Hi≤1,000,000,0000<Hi≤1,000,000,000,并且我们假设每个建筑物的宽度均为1。要求输出广告牌的最大面积。Input第一行是一个数nn(n≤400,000n≤400,000)..

2022-03-02 18:01:04 760

原创 扩展欧几里得

扩展欧几里得(模板)#include<bits/stdc++.h>using namespace std;//欧几里得定理即辗转相除法求两数的最大公约数int gcd(int a,int b)//尽量保证a>b,其实可以不用大小顺序无所谓,但是有顺序是为了思路更清晰 { if(b==0) { return a; } return gcd(b,a%b); } int exgcd(int a,int b,int &x,int &y){ if(

2022-03-02 17:57:41 59

原创 并查集(模板)

团伙Description在某城市里住着nn个人,任何两个认识的人不是朋友就是敌人,而且满足:1、我朋友的朋友是我的朋友;2、我敌人的敌人是我的朋友;所有是朋友的人组成一个团伙。告诉你关于这nn个人的mm条信息,即某两个人是朋友,或者某两个人是敌人,请你编写一个程序,计算出这个城市最多可能有多少个团伙?Input第1行为nn和mm,1<n<10001<n<1000,1≤m≤1000001≤m≤100000;以下mm行,每行为pxypxy,pp的值为0或1,pp

2022-03-02 17:56:40 161

原创 树状数组模板

树状数组(区间修改,单点查询)#include<bits/stdc++.h>using namespace std;typedef long long ll;const int maxx=1e6+5;ll c[maxx];ll n,m;ll lowbit(ll x){ return x&(-x);}void add(ll x,ll w){ while(x<=n) { c[x]+=w; x+=lowbit(x); }}ll sum(

2022-03-02 17:52:44 152

原创 高精度模板

高精度加法#include<bits/stdc++.h>using namespace std;const int x=550;string sa,sb;int a[x],b[x],c[x];int main(){ cin>>sa; cin>>sb; int lena=sa.size(); int lenb=sb.size(); int i,maxx,j; maxx=max(lena,lenb); maxx++; //将数组翻转过来..

2022-03-02 17:48:05 56

原创 最小生成树

pime算法+链式前向星存图#include<bits/stdc++.h>using namespace std;#define inf 0x3f3f3f3f #define maxn 5005#define maxm 200005//类似于链表 struct edge{ int to; int w; int next; }e[maxm*2];//创建一个结构体数组进行存图 int head[maxn];//head[]数组中记录的为当前以u为起点

2022-03-01 23:27:48 61

原创 最短路径(dijkstra算法)

结合体+链式前向星存图+dijkstra算法#include<bits/stdc++.h>using namespace std;const int N=1e5+5;typedef pair<int,int> PII;#define inf 0x3f3f3f3fint n,m,s;int h[N],to[N*2],ne[N*2],w[N*2],idx;int dis[N];bool vis[N];void add(int u,int v,int c){//

2022-03-01 23:23:55 133

原创 欧拉筛(筛选素数)

#include<bits/stdc++.h>using namespace std;const int N=1e8+5;const int maxx=1e6;#define inf 0x3f3f3f3fint prime[maxx];//用来储存素数 bool vis[N];//true表示访问过,false表示没有访问过 //欧拉筛筛选素数(进行大范围的素数判断) //欧拉筛其实是埃拉托斯特尼筛法的一种优化 int main(){ int n,cnt=0; cin..

2022-03-01 21:59:03 296

空空如也

空空如也

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

TA关注的人

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