自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(137)
  • 资源 (1)
  • 收藏
  • 关注

原创 HDU 6705 path

题意:给出若干条路,要求求第k短的路是什么(可以有2-1-2)这种重复出现的节点的路出现思路:首先把所有的以1为初始点的线段中的最短的加入优先队列,以2、3、4.。。。。。n的同样做,然后取出其中最短的(map[u][v]=w),那么每取出一个点,这个点都可以创造出两条次短的点,第一条(以v为起点的最短的点,长度则加上该点的长度)第二条是以u为起点的第二短的点把这两条边加入继续重复以上的动作即...

2019-08-30 20:12:30 250 1

原创 HDU 6709 Fishing Master

给出n条鱼的烹饪时间,和每条鱼钓上来的时间k,在钓鱼的时候可以烧鱼,也可以等鱼烧好在在钓鱼,但是不能在钓鱼的时候停下来烧下一跳鱼思路:贪心的思路一定要充分的利用k的时间,一条鱼比如10*k+t的时间来烹饪,那么10*k的时间都是可以利用钓鱼的时候来补填的,但是t的时间一定是要判断是等待还是不等待的,所以我们可以把t的时间放入数组然后从大到小排序,然后在优先取最大的t来判断是否需要等待,(...

2019-08-30 15:04:14 231

原创 hdu 6714 最短路 2

题意: 根据floyd的算法来求使所有mp[i][j]松弛的最大的k的和思路:用Floyd算法的时候可以只算出他的下三角,然后求出ans*2即可,在计算出下三角的时候记住要mp[i][j]和mp[j][i]的值#include<bits/stdc++.h>#define INF 0x3f3f3f3f3f3f3f3ftypedef l...

2019-08-30 14:26:36 491

原创 hdu 6719 Strassen(__int128 的dfs)

题意:给出一个n求矩阵乘积的运算次数,第一种为定义法,需要n的3次乘法和(n−1)n的2次加法。第二种为Strassen分治法,仅当n为偶数时可以使用,需要18*(n/2)的2次加法以及再计算7次大小为(n/2)×(n/2)的矩阵的乘积思路:用dfs暴力枚举每次n/2后的结果 选择用定义法,还是继续分治法的最小值,注意要使用__int 128#include<b...

2019-08-30 12:03:53 298

原创 牛客网多校 D Knapsack Cryptosystem(折半搜索)

题意:给出一个集合,和一个数num,试求集合中的sum是否等于num,若是则输出路径(0表示没在用,1表示有在用),确保有且仅有一个正解思路:1.折半搜索2.用map来hash,储存h[cnt]=string(表示当前半段组成的数字cnt的路径为什么),那么只需要暴力出前半个集合的所有可能性,然后搜索后半段,在收索后半段的时候,当我们当前后半段的值为ans,那么我们只需要判断...

2019-08-17 00:00:20 170

原创 HDU 6659 Acesrc and Good Numbers (数位dp)

题意:对于f(k,n)表示的是对于(1到n)一共出现了多少次的k,注意的是例如(11它一共出现了两个1),然后给我们k和x让我们求的是一个f(k,n)第一个小于x,并且f(k,n)==n的n思路:根据数位dp来求f(k,n),很明显对于数位的统计问题一定是用数位dp来求的,其次一共有三种状态1.当当前的数位i等于d的时候那么ans应该加上10^(pos-1),因为当前的数位若是...

2019-08-15 23:36:18 222

原创 hdu 6665 Calabash and Landlord

题意:给出两个矩形的左下角和右上角的坐标,求能分割出多少个小矩形思路:一个2,3,4,5,6五种情况,暴力枚举(2,3,5,6)即可,因为4的答案有很多种分割方法,那么前四种情况不符合则就是答案为4的情况,很肝的一道题#include <stdio.h>#include<string.h>#include<math.h>#include&l...

2019-08-14 23:33:28 164

原创 乘法逆元模板(除法取模)

用于求:(a/b%c)的时候可以吧他转化为a*B%c 其中B就是b关于c的逆元#include<bits/stdc++.h>#define lom long longusing namespace std; lom quick(lom a,lom b,lom c)//快速幂取模 { lom ans=1; a%=c; while(b) { if(b&am...

2019-08-13 19:44:25 845

原创 HDU (多校) Kejin Player HDU 6656

题意:有n个等级,每次升级一次需要a[i]的费用,并且每次升级有p的机率升级的i+1级,也有可能会降级到x[i],现在给出q次查询问l级到r级的期望费用是多少思路:1.可以求sum[i]表示1-i级的期望值,那么求l-r的期望就是sum[r]-sum[l],那么sum[i]该怎么求?假设对于当前的i,我需要计算sum[i+1],那么他的期望一定是由sum[i]和一次成功的费用...

2019-08-13 18:43:24 180

原创 hdu 6656 Final Exam

题意:给出n个题目,题目总分m分,每道题至少需要对应的分数+1的时间复习才可以通过,需要通过k个题目,试问如何安排复习时间才是最快的?思路:思考学生复习的最坏的情况是老师出的(n-k+1)个题目他都没有复习好(并且这n-k+1个题目是复习的时间最短的),那么如何来对待这种最坏的情况呢,首先假设问题已经发生,那么因为学生只缺一题没有做了所以若(n-k+1)个题目一共用m+1的时间来复习,那么...

2019-08-13 02:40:58 132

原创 KMP与EKMP

1.区别kmp是用于假设给主串a和模式串b然后求的是b在a中出现的位置,ekmp求的是假设给一个主串a,要求求以a的每个的开头为开始点,然后求它对于原字符串的出现的次数,然后存在extend数组中2.1思路:kmp的核心是一个next数组,next[i]用于储存的是当前到i这个位置的时候的最长的公共前后缀的长度,求得这个长度之后,假设当前模式串的j位置与主串不符合,按照传统的思路是需要...

2019-08-12 02:58:08 462

原创 HDU多校 6629 string matching(拓展kmp)

给出一个字符串暴力的去求每个字符串的以不同的起点的每微的最长公共前缀和的算法,让你算一共进行了多少次的比较思路:扩展kmp,扩展kmp用于求两个字符串的最长公共子序列(一个为主串,一个为模式串,主串的开头依次的后移),那么我们只要在每次的扩展kmp比较时判断是否已经比较到了最后一位,若没有则ans++#include <stdio.h>#include<s...

2019-08-11 14:27:53 227

原创 杭电多校 HDU 6641 TDL

题意:给出一个公式和公式上的m,k试着求是否有n可以符合上面的公式,若有这输出,没有这输出-1思路:1.对于f(n,m)因为与n互质的数很大所以求f(n,m)的时间复杂度并不是很高2.对于给出的k,我们是可以利用k来计算出n的取值范围然后再进行暴力枚举推导如下(吧)#include <stdio.h>#include<string.h&gt...

2019-08-08 00:30:55 192

原创 CodeForce #577 Zero Array

题意:给出若干个数,每次选两个数减1,那么是否可以让最后所有的数都变成0思路:抽屉原理,选出最大的数maxn,和计算出所有数sum如果sum为奇数那么不可能有这种方法,假设有maxn个抽屉,然后剩下的从第一个抽屉到最一个抽屉来回放,那么一个抽屉里不可能会有重复的数字,然后我们就会发现如果剩下的数可以放满一轮抽屉那么就一定可以每次从抽屉取两个然后把所有的抽屉里的东西取空#includ...

2019-08-06 00:23:26 141

原创 HDU 6406 Taotao Picks Apples

题意:给出一个序列,随意的修改他,让我们求这个序列以第一个元素为起点的最长的递增序列思路:因为修改的次数过多那么无法暴力,那么可以用到线段树来优化查询的时间线段树维护一个区间最大值,和一个当前区间的最优解,那么一个父节点的最优解由两部分组成,第一部分:一定是左子树的最哟姐,第二部分:思考左子树的最大值与右子树的关系我们可以知道,如果右子树的最大值小于左子树那么右子树的贡献为0,若干右子树的...

2019-08-04 22:33:49 159

原创 2019牛客网多校 Shorten IPv6 Address

题意:给出长度为128二进制数,把他转化成十六进制,并且选择一次转换(把连续的0转换程::的形式)问转换后的最短的16进制的数是多少,若都一样则输出字典序最小的思路:把128为拆成八个数,每个数为16位,然后把8个数字转化成16进制,转化完之后求把哪写转化成::的形式,这里可以用sum[]来求他的贡献,找出其中最大的sum[i]记录他的下标,若有多个最大的就优先最中间的转化,如果只有头和尾可以...

2019-08-04 17:36:55 186

原创 2019牛客网多校 Move(mutiset的应用)

题意:给n个物品,K个箱子,每个物品有体积Vi,要求最多能使用K个箱子(每个箱子的容积都要一样),需要的箱子的最小容积为多少(注意不能跑背包,要根据题目所描述的每次放入最适合的最大的即可.......)?思路:用multiset()来把每个物品存进去,这样的话里面的每个物品都是从小到大 排序好的,并且不会去重复,然后暴力枚举箱子的容积x,每次check一下若是可以用k个以内的箱子...

2019-08-04 02:20:12 189

原创 2019牛客网多校 Upgrading Technology

题意:n个技能能,每个技能可以升级到m,升级的时候需要花费(可能是正可能是负的),若所有的技能全部升级成功则有额外的奖励(可能为正,可能为负)思路:对于第i的技能等级有两种情况,要么前n个技能全部升级到i-1的等级再加上i以后的最优解(但是n个技能不能全部升级到i级),这要就涵盖了所有的可能性,然后暴力跑出最优解#include <stdio.h>#include...

2019-08-04 02:12:04 162

原创 杭电多校 HDU 6623 Minimal Power of Prime

3个知识点:1.线性素数筛2.因为所求的数n为10^18所以可以先求10000以内的所有的素数,然后用前10000先把n拆开一部分,若是n还有剩余那么只有4种情情况,n要么由P^4,要么P1^2*P2^2,要么P1*P2*P3*P4,要么由P^3,要么P1^P2,要么P^2,要么P1*P2这几种情况,那么答案要么是4,要么是3,要么是2,要么是13.pow(n,1/3)回有精度损失需要...

2019-08-01 22:06:24 152

原创 HDU 6620 Just an Old Puzzle

两个知识点:1.15数码若可以解决最坏的情况为移动80次2.若n为偶数,移动一次(上下移动)空白格 改变的的逆序对为奇数(n-1),左右移动不会改变逆序对,我们的目标是使逆序对为0,并且空白格要在右下角, 那么因为每次空白格移动都会改变奇数的逆序对,那么也就是说移动偶数次0则改变偶数个逆序对,移动奇数次就改变奇数个逆序对,那么若当前的空白格的行数与目标空白格的行数的差(因为只有上下移动才...

2019-07-31 23:12:48 136

原创 ICPC-ACM 模板

1.最小覆盖(最大匹配模板)(n*n)个图 k个边 求最小覆盖数#include &lt;stdio.h&gt;#include&lt;string.h&gt;#include&lt;algorithm&gt;#define N 1001using namespace std;int useif[N]; //记录y中节点是否使用 0表示没有访问过,1为访问过int lin...

2018-10-24 11:17:22 408

原创 codeforce #514 D. Nature Reserve

D. Nature Reservetime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputThere is a forest that we model as a plane and live nn rare ani...

2018-10-08 15:01:13 348

原创 HDU 4800 Josephina and RPG(DP)

Josephina and RPGTime Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2349    Accepted Submission(s): 711Special Judge Problem DescriptionA r...

2018-09-30 16:16:06 205

原创 Codeforce A. Enlarge GCD

A. Enlarge GCDtime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputMr. F has nn positive integers, a1,a2,…,ana1,a2,…,an.He thinks th...

2018-09-22 20:20:03 440

原创 Codeforce D. Bicolorings

D. Bicoloringstime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou are given a grid, consisting of 22 rows and nn columns. Each c...

2018-09-21 16:20:58 364

原创 关于km算法(最佳匹配)的个人总结——模板

km算法具体讲解请看:https://blog.csdn.net/u014097230/article/details/51554905本文只是模板#include &lt;stdio.h&gt;#include&lt;string.h&gt;#include&lt;algorithm&gt;const int INF = 0x3f3f3f3f;using namespace s...

2018-08-30 21:54:04 942

原创 匈牙利算法的个人总结

匈牙利算法:用来解决一个二分的无向图的最大匹配问题例如:N个女生,N个男生,每个每个女生都有自己暗恋的对象,男生只要是女生就可以接受,然后求最多可以凑出多少对情侣。如图:女生1暗恋男生2、3。女生2暗恋男生1。女生3暗恋男生2女生一可以跟男生二匹配,匹配成功。女生二可以跟男生一匹配,匹配成功轮到女生三去找男生二时发现男生二有伴了,于是男生二让你女生三等等,问女生...

2018-08-30 20:52:08 1479

原创 关于双向队列的用法

1.deque是跟队列一样的储存顺序,但是它有一下几个特点:1.可以用[]或者at()来访问队列中的任意一个值2.比vecor更加消耗空间3.可以用push和pop对队列两端进行修改4.可以在内部进行插入或者删除操作,但是性能不及list2.创建一个双向队列1.deque();//创建一个新的双向队列2.deque(size_type num,const type_va...

2018-08-17 20:55:28 1932

原创 2018百度之星初赛1003度度熊剪纸条

度度熊剪纸条  Accepts: 488  Submissions: 5471 Time Limit: 2000/1000 MS (Java/Others)  Memory Limit: 65536/65536 K (Java/Others)Problem Description度度熊有一张纸条和一把剪刀。纸条上依次写着 NN 个数字,数字只可能是 00 或...

2018-08-12 13:59:24 217

原创 2018百度之星初赛1002度度熊学队列

1003任何时候的纸条(最初的纸条或者剪下来后的部分)都不能前后翻转度度熊学队列  Accepts: 958  Submissions: 5545 Time Limit: 3000/1500 MS (Java/Others)  Memory Limit: 131072/131072 K (Java/Others)Problem Description度度熊正...

2018-08-12 13:56:04 257

原创 2018百度之星初赛赛1001度度熊拼三角

贪心从大到小排序然后再判断三条边是否可以组成三角形,可以则输出即可1003任何时候的纸条(最初的纸条或者剪下来后的部分)都不能前后翻转度度熊拼三角  Accepts: 2536  Submissions: 4433 Time Limit: 2000/1000 MS (Java/Others)  Memory Limit: 65536/65536 K (Java/...

2018-08-12 13:52:04 291

原创 初入线段树

1.作用:线段树适用于解决规定区间的查询,修改,统计等操作,例如:求数组下标为1-10000的所有数字的和,那么普通方法为遍历所有的1-10000的数字,然后进行求和,那么若数据量很大,这种方法将会十分的消耗时间,而线段树则可以利用区间之间的相加来求和,将会大大的节约时间。2.线段树大概由四个板块组成,1.Pushup(计算当前节点的值)2.Build(用U建树)3.Update(用于更新数据...

2018-08-10 17:37:06 188

原创 2018百度之星资格赛1002 子串查询

两个线段树是查询即可#include &lt;stdio.h&gt;#include &lt;string.h&gt;#include &lt;algorithm&gt;#define MAX 100000+10using namespace std;int ans[4*MAX];char a[MAX];int h[4*MAX][27];void PushUp(int rt...

2018-08-05 15:39:01 262

原创 链表基础

假设有一组数列由小到大排序,{1,5,9,8,12,49},那么要向这个数列中插入一个数字6,并且不破坏它本身的特点(由小到大),那么常规方法是找到第一个比6大的数字,然后在这个数字前面添上6,然后后面的数字的下表全部加一,这种方法十分低效,所以我们现在可以用到链表的知识来解决这个问题1.首先现介绍malloc函数,它的作用是从内存中申请分配指定空间大小的内存空间#include &lt...

2018-07-29 15:23:13 217

原创 JAVA之坦克大战(五)总结

源码:Bullet类:public class Bullet implements Runnable{ //多线程 private int speed=10; private int dir; boolean life=true; public int getSpeed() { return speed; } public ...

2018-07-01 15:56:19 1639

原创 JAVA之坦克大战(五)实现坦克与子弹的碰撞,然后消失

思路:judge1,judge方法判断敌方坦克友方子弹和友方坦克敌方子弹的碰撞,并且需要放在多线程之中判断1.Mypanel中的run方法:public void run(){ while (true) { for(int i=0;i&lt;enemyTanks.size();i++) { EnemyTank enemyT...

2018-07-01 15:38:38 3361

原创 JAVA之坦克大战(四)敌方坦克的移动和发射子弹

思路:敌方坦克移动和发射子弹肯定需要单独的线程,然后敌方坦克的随机移动需要获取四个随机的方向做到以上几点之后会发现做出来的敌方坦克非常的鬼畜,原因是获取随机的方向太频繁,所以我写了一个for循环控制15*50ms一次获取方向,然后子弹需要在EnemyTank类中写一个fire()方法,然后随机的用fire()这个方法即可1.EnemyTank中的线程run()重写: public void ru...

2018-06-30 16:49:04 5200

原创 JAVA之坦克大战(三)我方坦克发射炮弹

思路:添加子弹类,并且写出子弹运行的线,然后在Mytank中添加新的fire()方法,用于发射子弹时获得当前炮管的方向,因为子弹较多所以需要把子弹放在Vector集合里,并且需要开多线程,因为子弹运动需要进行重绘,所以就需要Panel开多线程。1.Bullet类:public class Bullet implements Runnable{ //多线程 private int sp...

2018-06-28 18:22:29 2906 1

原创 JAVA之坦克大战(二)我方坦克移动

思路:写出我方坦克的上下左右的移动方法,在MyPanel类里继承Keylistener接口,重写三个方法在KeyPressed方法中写出上写左右四个动作对应的四个方向,和方法,然后重绘MyPanel类:import javafx.scene.input.KeyCode;import javax.swing.*;import java.awt.event.KeyEvent;import jav...

2018-06-28 16:07:11 2122

原创 JAVA之坦克大战(一)绘画敌我方的坦克

思路:添加Tank父类,EnemyTank和MyTank子类,Panel类(画图),主类,主类需要继承JFrame来建立框架,其中Panel和Main都需要用构造函数,打开程序时即自启1.Tank类:public class Tank { int x; public int getX() { return x; } public void set...

2018-06-28 15:19:27 1732

注册界面.aspx

注册界面.aspx 注册界面.aspx 注册界面.aspx 注册界面.aspx 注册界面.aspx 注册界面.aspx 注册界面.aspx 注册界面.aspx 注册界面.aspx 注册界面.aspx

2017-09-14

空空如也

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

TA关注的人

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