自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(197)
  • 资源 (2)
  • 收藏
  • 关注

原创 二分搜索算法

算法要求:必须采用线性存储结构,且能随机访问必须按关键字大小有序排列算法思想:二分查找法也称折半查找法,它充分利用了元素间的次序关系,采用分治策略,可在最坏的情况下用O(log n)完成搜索任务。它的基本思想是:(这里假设数组元素呈升序排列)将n个元素分成个数大致相同的两半,取a[n/2]与欲查找的x作比较,如果x=a[n/2]则找到x,算法终止;如 果x<a[n/2],则我们只要在数组a的左半部继续搜索x;如果x>a[n/2],则我们只要在数组a的右 半部继续搜索x。时间

2020-06-17 19:50:52 2256 1

原创 Codeforces Game On Leaves(树)

题目大意:给定一棵树,有两个人轮流拆除树上的叶子节点,摘除编号为x的节点的人获胜,问最后谁会获胜解题思路:以x为根节点,求x的所有孩子节点的数量,如果数量为奇数,则Ayush获胜,否则Ashish获胜,这里需要注意一种特殊情况,即第一个人就能取得胜利,所有记录直接与x相连的节点的数量代码:#include <bits/stdc++.h>using namespace std;int t,n,x,f[1010],sum[1010];vector<int> arr[10.

2020-06-08 21:34:57 392

原创 Codeforces Rotation Matching(思维)

解题思路:由于第二个数组所有数字是同时向一个方向移动的,求移动后最大匹配项的数目,即可以转化为求原始数组中处在同一偏移量的数字个数的最大值,偏移量就等于b数组中某个数组与a数组中相同数字之间的绝对距离代码:#include <bits/stdc++.h>using namespace std;const int maxn=2e5+10;int a[maxn],b[maxn],c[maxn],ans;int main(){ int n; scanf("%d",&a.

2020-06-08 20:14:15 304

原创 Codeforces Phoenix and Distribution(字符串、排序、思维)

题目大意:给你一个长为n的字符串,从中选择字符组成k个不为空的字符串,使得max(s1,s2,…,sk)最小,输出max(s1,s2,…,sk)解题思路:这是一道思维题,首先将原字符串进行排序,将前k个字符作为字符串的第一个字符如果这k个字符完全相同,判断字符k+1到字符n是否相同,如果相同则均分给k个字符,取其中最大的输出,如果不同,则要是最大字典序最小,直接将剩下的字符串接到字符k...

2020-05-07 15:03:19 257

原创 Codeforces Hamburgers(二分查找)

题目大意:做一个汉堡需要b,s,c三种材料,一开始每种材料有nb,ns,nc个,且它们的单件价格分别为pb,ps,pc,有r块钱,根据配方,问最多能做多少个汉堡解题思路:考虑用二分查找,注意边界条件,最后所用的钱数可以不是刚刚好为r代码:#include <bits/stdc++.h>#define ll long longusing namespace std;ll...

2020-05-06 16:20:00 422

原创 Codeforces Yet Another Counting Problem(数学)

题意:[l,r]范围内多少个数满足 (x % b) % a != (x % a) % b。思路:打表找规律小心数据范围代码:#include <bits/stdc++.h>#define ll long long#define Max 0x3f3f3f3f3f3f3f3fusing namespace std;int cnt[1000000];int main(...

2020-04-29 18:35:36 323

原创 Game stratege(思维)

解题思路:其实这道题目开始就想出了应该是三重循环,也就是每个人选一个数,使得这三个数尽量符合三个人的要求即每个人在自己可选择的范围内,选择最符合自己要求的数,三个人的选择是互不影响的代码:#include <bits/stdc++.h>#define ll long long#define Max 0x3f3f3f3f3f3f3f3fusing namespace st...

2020-04-26 22:19:16 161

原创 Codeforces Primes and Multiplication(数论)

解题思路:看懂g函数就好搞了就是再问你 45 里面3作为质因子 出现次数是多少我们考虑f 无非就是分解质因数 最多20个然后 1 到 n 这个质因数出现了几次 套阶乘的分解质因子就好然后 注意 阶乘质因子就不要乘了 连long long 都炸注意理解题目意思就好了,和之前那道阶乘的题目很类似注意精度,小心溢出#include <bits/stdc++.h>#defi...

2020-04-26 21:11:04 154

原创 Codeforces Pride(数论)

题目大意:给你n个数,让你进行操作,操作是对两个数取他们的gcd,这个gcd可以将这两个数其中一个替换掉,问将所有的数字变为1最少需要多少次操作解题思路:我们应该找能gcd得出1的最小区间,得出他们的距离,这个距离就是将这个小区间变出一个1所需要的步数,只要能得出一个1,再需要n-1步就可以将整个区间变为1了代码:#include <bits/stdc++.h>using...

2020-04-26 11:20:31 268

原创 Codeforces Colorful Bricks(组合数)

题目大意:给你n个块,m种颜色,让你涂颜色,要求最后相邻砖块颜色不同的情况总数为k,问你有多少种图法解题思路:n个砖块间总共有n-1个间隔,从n-1个间隔中选出k个间隔,这k个间隔相邻的两端砖块颜色不同,其他间隔两端砖块颜色相同,可以看成是给k+1个砖块涂颜色,相邻砖块颜色互不相同#include <bits/stdc++.h>using namespace std;#d...

2020-04-25 19:12:00 196

原创 Codeforces Vova and Trophies(前缀、后缀、字符串)

解题思路:记录a[i]为从i开始往前最大的连续G的数量,记录b[i]为从i开始往后最大的连续G的数量,枚举每个交换位置i,arr[i]为S,取最大的a[i-1]+b[i+1]+1即为交换后最大可能连续G的长度,注意长度不能超过总的G的数量,如果超过要将答案减1#include <bits/stdc++.h>using namespace std;#define ll long...

2020-04-25 16:17:56 192

原创 Codeforces Little Girl and Maximum Sum(差分)

题目大意:给出n项的数列A[ ], q个询问, 询问 [ l, r ] 之间项的和. 求A的全排列中该和的最大值.解题思路:涉及到区间修改,每次修直接循环,复杂度有可能会被卡到n^2,所以用一维差分#include <bits/stdc++.h>using namespace std;#define ll long longconst int maxn=2e5+10;...

2020-04-25 15:47:26 159

原创 Codeforces Circle of Monsters(思维)

题意:有一个n个怪物,环形排列,每个怪物有a[i]滴血,每次射击可以-1滴血,死后爆炸产生b[i]伤害,能伤害到下一个怪物,若炸死了下一个,也是同样爆炸,问最小射击次数使得全部怪物GG解题思路:从反面思考,最终的结果是全部怪兽死亡,那么造成的总伤害(爆炸+射击)必然等于全部怪兽的血量和,那么怎么使得射击的伤害尽可能小呢?毫无疑问是使得爆炸的伤害尽可能的大,那么怎么使得爆炸的伤害尽可能大呢?方...

2020-04-25 13:58:52 381

原创 Codeforces Cow and Message(字符串、dp)

题目大意:给定一个由小写字符组成的字符串,求字符串中出现最多的子序列的出现次数解题思路:由题意我们思考可以得到,出现次数最多的子序列必定是长度为2或者1的子序列,长度大于2且出现次数超过长度为2的子序列的出现次数的情况是不存在的,例如abcabc代码:#include <bits/stdc++.h>using namespace std;#define ll long ...

2020-04-25 10:30:17 173

原创 Codeforces Equalizing by Division (hard version)

题目大意:给你一个数组,给定k,定义一个操作为arr[i]/2,问你至少操作多少次,使数组中存在k个相等的数解题思路:首先我们要排一下序,从小到大排,然后对每个,枚举每个元素,枚举的同时除二,同时用一个数组cnt记录在除二的过程的出现的数字,并记录一下,在用一个数组num记录arr[i]变成当前状态需要几步。#include <bits/stdc++.h>using nam...

2020-04-24 21:45:03 170

原创 Codeforces Eugene and an array(前缀和)

题目大意:给你一个长度为n的数组,求不含和为0的子串的个数解题思路:代码:#include <bits/stdc++.h>using namespace std;#define ll long longint n;ll ans,arr[200020],s;map<ll,ll> pos;int main(){ scanf("%lld",&am...

2020-04-24 17:20:22 155

原创 Codeforces Taxes(数论)

解题思路:代码:#include <bits/stdc++.h>using namespace std;int n,ans;bool judge(int x){ for(int i=2;i*i<=x;++i) if(x%i==0) return false; return true;}int main(){ scanf...

2020-04-24 15:26:54 187

原创 Codeforces Maze(图、DFS)

题目大意:给定一个图,其中有若干个障碍和空地,空地之间互相连通,现在让你在空地中加K个障碍记为X,要求每一块空地之间仍然联通解题思路:思路1:逆向思维,先将所有空地变为X,记录总共的X的个数cnt,从中选取cnt-k个变为空地,选取一个X然后DFS产生空地且一定联通代码1:#include <bits/stdc++.h>using namespace std;char...

2020-04-24 14:02:13 240

原创 Codeforces Hard problem(dp、字符串)

题目大意:给定n个子字符串,对其中若干个字符串进行反转,每次反转产生代价Ci,最后使得字符串按照字典序排列,求最小代价和,不需要反转时输出-1解题思路:首先使字符串的两个状态,正序和反序,相当于从每两个字符串中选出一个,如果选正序代价为0,如果选反序代价为Ci,求出最终最小代价,定义方程dp[i][j]为当选完第i个状态为j的字符串时的最小代价,则有状态转移方程dp[i][j]=min(...

2020-04-24 10:35:09 253

原创 Codeforces Boredom(dp)

题目大意:给定一个数组,从中删除数字,如果一次操作为删除k,则k-1和k+1也被删除,此次操作的得分为k,问当数组中的数完全被删除时最高得分为多少解题思路:考虑到an的范围,可以令arr[i]为操作到数i时的最大得分,则有arr[i]=max(arr[i-2]+arr[i],arr[i-1])代码:#include <bits/stdc++.h>#define ll lo...

2020-04-23 22:09:17 287

原创 Codeforces Xenia and Colorful Gems(二分查找、枚举)

题目大意:给定三个数组,从三个数组中分别选出一个数字,使得要求的结果表达式最小解题思路:由题意可知三个数x<=y<=z,枚举y,二分查找找到最接近与y的x与z,求结果,取所有结果的最小值#include <bits/stdc++.h>using namespace std;#define ll long longconst int maxn=1e5+10;...

2020-04-23 20:23:59 247

原创 Codeforces Linova and Kingdom(树形结构、贪心)

题目大意:给定一颗有n个节点的树,从中选出k个节点,从每个节点走到根节点1,路径中经过的未选中的节点的个数为kx,求一种选择方案,使总的kx之和最大。解题思路:求出每个节点对总值的贡献值,加入选择节点x,那么该节点的贡献值为x的深度减去该节点所有子树中节点的个数,因为选择节点的时候,必然使从树最深的地方开始的,当一个可以选择一个节点时,其子节点也必然已经被选择(贪心),选入该节点后,其子树...

2020-04-23 18:10:19 152

原创 旅旅旅游(最短路、查并集)

解题思路:代码:#include <bits/stdc++.h>#define ll long longusing namespace std;const int maxn=1e6+10;ll dis1[maxn],dis2[maxn],inf=0x3f3f3f3f3f3f3f3f;bool vis[maxn];struct Edge{ int u,to...

2020-04-21 19:17:10 170

原创 人人都是好朋友(查并集、数据离散化)

代码:#include <bits/stdc++.h>using namespace std;int t,n;const int maxn=5e6+10;int arr[maxn];int a[maxn];int b[maxn];int c[maxn];int pre[maxn];int find(int x){ if(x==pre[x]) return...

2020-04-20 20:09:56 144

原创 二维差分、前缀和

解题思路:代码:#include <bits/stdc++.h>#define ll long longusing namespace std;ll arr[2020][2020],n,m,k,q;int main(){ scanf("%lld%lld%lld%lld",&n,&m,&k,&q); while(k--)...

2020-04-19 12:41:18 260

原创 classroom(LCA)

代码:#include<bits/stdc++.h>using namespace std;vector<int> arr[100010];int f[100010][22],dep[100010],fi[100010],dis,L;void dfs(int u,int fa,int d){ dep[u]=d,f[u][0]=fa; if(fa=...

2020-04-17 17:03:32 206

原创 Music problem

解题思路:代码:#include <bits/stdc++.h>using namespace std;int arr[150000];int dp[3610],temp[3610];int main(){ int n,t; cin>>t; while(t--) { scanf("%d",&n); ...

2020-04-16 15:59:15 266

原创 小H和游戏(树形结构)

解题思路:最直接的想法是,每次轰炸一个点时,将距离2以内的点的轰炸次数都加1,但是这可能会产生一个问题,很容易被卡,如果只有一个父亲节点,n-1个儿子节点,那么复杂度为O(n^2)所以应该采取另外一个方法,即每次轰炸将贡献传递给父亲和爷爷还有自身,这样每次就降低了复杂度,每次次数询问时,只需查询父亲、爷爷、自身的贡献次数就行代码:#include <bits/stdc++.h&gt...

2020-04-15 17:33:49 953

原创 C++upper_bound与lower_bound(二分查找)

2020-04-15 16:58:03 568

原创 武大Shopee杯-B

题目大意:给定n个数,从n个数中选出两个数之和为0,为一种匹配方式,每个数不能与本身匹配,问总共可能的匹配数目。解题思路:由于数的范围不大,求出每个数出现的次数,则i+j==0,匹配方法为cnt[i]*cnt[j]种,注意0与0匹配的时候比较特殊。#include <bits/stdc++.h>#define ll long longusing namespace st...

2020-04-12 23:12:07 180

原创 武大Shopee杯-A(动态规划)

题目大意:给定n个字符串,从中依次选若干个,头尾相接的两个字符串必须第一个字符串的最后一个字符和第二个字符串的第一个字符相同,求能够组成的最大字符串的长度,目标字符串首尾字符必须相同。解题思路:dp[i][j]为以i为首以j为尾的最大字符串长度,则如果当前字符串为abcde,遍历dp[i][‘a’],如果这个不为0,则转移dp[i][‘e’]=max(dp[i][‘e’],dp[i][‘...

2020-04-12 23:01:27 225

原创 JAVA实现植物大战僵尸连连看

说明:本篇博客主要讲述练练看游戏的设计与实现。前半部分为分析与类和属性的说明,后半部分为程序的实现与程序代码。第一次写小游戏,仍存在许多问题,也借鉴了优快云前辈的代码想法,如有不妥,还望多批评指正。(一)需求分析已经实现的部分:1.游戏开始界面2.游戏方块消除功能3.游戏时间限制功能4.方块刷新重拍功能5.在游戏胜利失败时提示并结束游戏6.炸弹功能7.游戏中鼠标移动和点击的动态...

2020-04-12 20:49:06 1074 5

原创 最短路变短了(最短路径)

解题思路:#include<bits/stdc++.h>using namespace std;#define ll long longconst int maxn=1e6,inf=INT_MAX;int head[maxn],cnt,n,m,s,t;bool vis[maxn];ll dis1[maxn],dis2[maxn];struct Edge{ ...

2020-04-11 11:02:26 200

原创 LCA模板

//dep[x]表示x的深度, pa[i][x]表示x的向上的第2^i个父亲, 比如pa[1][x]表示的就是x的父亲的父亲(x的爷爷) 它的值就等于pa[0][pa[0][x]]void dfs(int u,int fa,int d){ dep[u]=d; f[u][0]=fa; for(int i=1;i<=20;++i) f[u][i]=f[...

2020-04-09 19:02:37 247

原创 月月查华华手机(字符串操作)

解题思路:维护一个数值Next[i][j],表示第i个位置之后第一次出现j的位置,首先从前往后遍历字符串,初始化Next,Next[i-1][arr[i]-‘a’]=i,然后从后往前处理Next数组,相当于每次向前传递位置i后第一次出现的字母的位置信息,遍历到位置0结束,注意只有一个字符的特殊情况。代码:#include <bits/stdc++.h>using namesp...

2020-04-04 12:11:36 293

原创 树上删边

#include <bits/stdc++.h>using namespace std;#define ll long longconst int maxn=1e5+10;ll head[maxn],n,m,s,cnt,du[maxn];ll dp[maxn];struct Edge{ ll next,to,w;}edge[maxn<<1];l...

2020-04-03 21:22:57 255

原创 SQL安装教程

添加链接描述

2020-04-03 14:56:19 180

原创 manacher模板

#include<bits/stdc++.h>#define ll long longusing namespace std;char temp[1500],s[4000];int cnt[4000];int manacher(){ int l=strlen(temp+1); int t=0; s[t++]='@'; s[t++]='#';...

2020-03-31 22:06:29 127

原创 装货物(搜索)

解题思路:这道题目标准答案应该是动态规划,但是考虑到这里的n非常小,可以通过DFS来解决,增加一种思路,应该是搜索每个货物应该放的箱子的编号。#include<bits/stdc++.h>using namespace std;#define ll long longconst int N = 1e4 + 10;const int INF = 0x3f3f3f3f;in...

2020-03-31 20:40:46 207

原创 悠悠水波(String用法)

#include<bits/stdc++.h>#define ll long longusing namespace std;string a,b;int main(){ cin>>a; int len=a.size(); for(int i=1;i<=len/3;++i) { string s1=a.sub...

2020-03-29 14:15:31 130

大连理工大学软件学院2020数据库上机答案.docx

大连理工大学软件学院2020数据库上机答案.docx

2020-06-02

PlantsLink.zip

植物大战僵尸连连看游戏源码及其图片资源

2020-04-12

空空如也

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

TA关注的人

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