自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (12)
  • 问答 (12)
  • 收藏
  • 关注

原创 15行代码AC——Link/Cut Tree CodeForces - 614A(爆long long处理+快速幂讲解)

Problem describeProgrammer Rostislav got seriously interested in the Link/Cut Tree data structure, which is based on Splay trees. Specifically, he is now studying the expose procedure.Unfortunately, Rostislav is unable to understand the definition of th.

2020-08-31 13:17:50 724

原创 14行代码AC_Break the Chocolate HDU-4112(数学推导+解析)

励志用少的代码做高效表达Problem describeBenjamin is going to host a party for his big promotion coming up.Every party needs candies, chocolates and beer, and of course Benjamin has prepared some of those. But as everyone likes to party, many more people showed up

2020-08-30 16:15:32 761

原创 15行代码AC——ZOJ - 4118 Stones in the Bucket(思维题+优化方案)(第十届山东省ACM程序设计竞赛F题)

励志用少的代码做高效表达。思路分析题意:给定n个数,问最少操作几次,使数列中的数全部相等。操作一:将数列中任意数减一。操作二:将数列中任意数减一。任意数加一(相当于把1挪过去)涉及到最少的题,一定就是贪心了, 当然,本题考思维多一点,如果只是单纯的贪,会很麻烦。首先求出平均数n最开始的思路是:将>n的数的溢出值,挪给<n的数。 最后将多出来的数直接减掉。思路可行, 但这不是最优化的解法。想一想我们最终的目的:要求最后的值一样,因此可以这样简化:对>n的数的溢出部分累加

2020-08-30 14:36:33 708

原创 20行代码AC_ 习题8-1 Bin Packing UVA - 1149(贪心+简单二分解析)

励志用少的代码做高效表达题意给定N个物品的中联L1,背包的容量M,同时要求每个背包最多装两个物品,求至少要多少个背包才能装下所有的物品。解题过程第一次接触背包类问题。最初的思路是降序排序,i从最大值遍历,j从i后遍历,直到找到可以装在一个背包里的两个物体,若无,则把最大值单独装包。时间复杂度为O(n^2),超时且复杂。网搜后,发现更优化的思路是:升序排序,从i最小的值遍历,j从最大的值遍历,若二者和满足条件,则装包, 反之将较大值单独装包。于是我陷入了思考, 为什么只是将排序调整一下,时间复

2020-08-29 14:43:55 1471

原创 17行代码AC_51Nod - 2133 排队接水(贪心)

励志用少的代码做高效表达贪心算法模板题贪心算法简单来讲即自顶向下,求解出每个子最优解,且每个子问题不会对下一个问题产生影响题意:n个人排队接水,问如何排序才能使总等待时间最短,(正在接水的人和没有接水的人都需要等待)解法一、优先队列,接水时间越短越靠前。解法二、数组存储+algorithm头文件中的sort()升序排序,思路同上。algorithm头文件见我的这篇博客——>懒癌的福音_lgorithm头文件函数全集优先队列解法代码:#include<bits/stdc++.h

2020-08-28 18:16:13 786

原创 给我往死里贪——HRBUST - 1167-每种面值的货币要多少

Problem describe组织终于发工资了,等了好久的工资终于来了。。。为了让大家能在领工资的时候能尽量快,组织决定一次发完所有工资,不会出现让员工找零的情况,也就是说,如果一个员工的工资是1160元,就会给11张100元,1张50元,1张10元,而不会给员工1200元,然后让员工找40元零钱的情况。员工的工资都是整数,单位是元,并且市面上流通的RMB面值有100元,50元,20元,10元,5元,1元。要求最终需要的纸币张数最少。Input有多组测测试数据,每组测试数据占一行。对于.

2020-08-28 17:49:16 802

原创 25行代码AC_HDU - 4802 GPA(浮点数的运算)

Problem DescriptionIn college, a student may take several courses. for each course i, he earns a certain credit (ci), and a mark ranging from A to F, which is comparable to a score (si), according to the following conversion tableThe GPA is the weigh.

2020-08-28 12:29:30 791

原创 18行代码AC_HDU-4811 Ball(数学、推公式)

Problem DescriptionJenny likes balls. He has some balls and he wants to arrange them in a row on the table.Each of those balls can be one of three possible colors: red, yellow, or blue. More precisely, Jenny has R red balls, Y yellow balls and B blue ba.

2020-08-28 12:15:48 439

原创 给我往死里贪!——24行代码AC_今年暑假不AC HDU - 2037(贪心模板讲解)

励志用少的代码做高效表达思路分析:贪心算法模板题贪心算法简单来讲即自顶向下,求解出每个子最优解,且每个子问题不会对下一个问题产生影响该题算法模型为:1.若每次选取开始时间最早的节目,无法求出最优解2.若每次选取播放时间最短的节目,无法求出最优解3.若每次选取结束时间最短的节目,用数学归纳法可以求出最优解算法设计:1.采用结构体数组存放数据2.用冒泡排序法对 节目结束时间 进行升序排序3.遍历节目数组,找出每一个节目结束时间最早的节目,并且当前节目开始时间需大于等于上一个节目结束时间

2020-08-26 12:36:36 1051

原创 保证全对——2015年第六届蓝桥杯C/C++ B组部分解题报告

备考蓝桥杯中,请关注博主,后续会持续更新…1.结果填空 (满分3分)奖券数目有些人很迷信数字,比如带“4”的数字,认为和“死”谐音,就觉得不吉利。虽然这些说法纯属无稽之谈,但有时还要迎合大众的需求。某抽奖活动的奖券号码是5位数(10000-99999),要求其中不要出现带“4”的号码,主办单位请你计算一下,如果任何两张奖券不重号,最多可发出奖券多少张。请提交该数字(一个整数),不要写任何多余的内容或说明性文字。解题思路:直接五重循环爆破即可。#include<bits/stdc++.

2020-08-26 11:13:09 834

翻译 14行代码AC_SCU 4440 Rectangle(公式+矩阵对称性)

励志用少的代码做高效表达Problem Describefrog has a piece of paper divided into (n) rows and (m) columns. Today, she would like to draw a rectangle whose perimeter is not greater than (k).There are 8 (out of 9) ways when n = m = 2, k = 6There are (8) (out of (9))

2020-08-24 11:58:44 742

原创 四种解法——求子序列的最大连续子序和(普通解法、求和解法、分治法、O(n)级解法)(面试经典题)

励志用少的代码做高效表达在这四种解法里,解法一是通法,可以学到规律和知识,做基础之用;解法二在解法一的基础上做改进,锻炼思维;解法三则是大名鼎鼎的分治法,涉及到递归的知识,算是“高效算法设计”的基础;解法四以O(n)的复杂度解出最大连续子序和,一个字,神奇。四种解法循序渐进,效率逐步提高,精妙至极。建议初学者每种都要掌握。解法一:最普通的解法,定义i循环,代表数组从0到n-1的值,定义j循环,代表从a[i]开始,到a[j]结束。 定义k循环,将从a[i]至a[j]所有的数相加,最后求出最大子序列和。

2020-08-23 00:52:48 1343 1

原创 判断一个数是否是素数,为什么只要除到根号那个数就够了

一个数n如果不是素数那么一定存在若干因子(不少于2个),假设最小的因子是p,那么p*p <= n所以得:p<根号np < 根号np<根号n

2020-08-22 00:42:21 8157

原创 28行代码AC——Minimum Sum LCM UVA - 10791(最大质因子)

励志用尽量少的代码做高效表达题目(提交)链接——>UVA - 10791题意输入正整数n,找至少两个数,使得他们的最小公倍数(Least Common Multiple)为n且要输出最小的和。心路历程最近在备考蓝桥杯, 将本题纳入分解质因子专题。接连刷了一下午的题, 脑瓜子嗡嗡的,看这道题时连题意都没读懂就稀里糊涂的开始敲了,WA,后又读题,调试一小时,成功AC。首先假设我们知道了一系列数字a1,a2,a3……an,他们的LCM是n,那么什么时候他们是最优解呢,当他们两两互质的时候

2020-08-20 19:12:30 859

原创 辗转相除法(欧几里得算法)求 最大公约数与最小公倍数+推论与证明。

如果非计算机专业只是摸鱼划水混及格,那么直接记代码就OK了。以下推论和证明是为了让我们对公约数和公倍数有更深刻的理解。首先我们规定:0不参与公约数和公倍数的讨论先来讨论最大公约数:最大公约数的作用:当两个数同时除以这个最大的两数共有的因数后两数满足互质。最大公约数求法:两个数的所有公共质数相乘. 考虑三个问题。为什么是公共的:公共代表这个数可以被两个数都整除为什么是质数:合数一定能分解出质数,若为公共合数,则代表并非最简。为什么两个数分别除以最大公因数后满足互质:因为抽掉了公共质因子。

2020-08-20 12:37:08 1800

原创 26行代码AC_试题 历届试题 日期问题 | 第八届蓝桥杯B组第七题

励志用尽量少的代码做高效表达心路历程由于最近在备考蓝桥杯,上午集训队比赛,堪堪A掉了一道日期题,让我产生了训练这一专题的想法, 于是找到了这道题。读完题第一思路就是觉得不难但是复杂,难点如下:1、要分三种情况输出2、这三种情况中如果出现值相等的情况如何解决(如输入02/02/02)。3、在不同年份和月份下天数的变化情况。第一遍敲了大概一百行,提交。一个样例没过,网搜后看到一位大神的代码,30多行就A掉了,于是学习,也做了一些改进。对于难点一:可以采用函数复用的方法,三合一,减少代码量。

2020-08-19 21:32:33 760

原创 最全!最完整的递归下降分析法代码!!! (实验报告,代码)

根据某一文法编制调试递归下降分析程序,以便对任意输入的符号串进行分析。本次实验的目的主要是加深对递归下降分析法的理解。程序要求:程序输入/输出示例:对下列文法,用递归下降分析法对任意输入的符号串进行分析:(1)E->TG(2)G->+TG|—TG(3)G->ε(4)T->FS(5)S->FS|/FS(6)S->ε(7)F->(E)(8)F->i输出的格式如下:(1)递归下降分析程序,编制人:姓名,学号,班级(2)输入一以#结束的符号

2020-08-19 00:32:23 3122 1

原创 最全!最完整的设计词法分析程序的代码!!!

问题描述通过设计编制调试一个具体的词法分析程序,加深对词法分析原理的理解。并掌握在对程序设计语言源程序进行扫描过程中将其分解为各类单词的词法分析方法。编制一个读单词过程,从输入的源程序中,识别出各个具有独立意义的单词,即基本保留字、标识符、常数、运算符、分隔符五大类。并依次输出各个单词的内部编码及单词符号自身值。(遇到错误时可显示“Error”,然后跳过错误部分继续显示)(一)程序要求:程序输入/输出示例:如源程序为C语言。输入如下一段:main(){int a,b;a = 10;

2020-08-19 00:29:05 2224

原创 最全!最完整的求first集和follow的代码!!!编译原理 FIRST集和FOLLOW集的求法 代码,程序,实验报告

DEV C++ 项目实现 不会建项目的看这个——>如何创建项目代码链接:https://pan.baidu.com/s/1VNdrSMXaKu3HI0UQ_TInUQ提取码:b1qz使用教程解压后打开文件夹,直接用Dev c++运行LL1,如图:即可实现。一分钱都不要啊, 比那些要C币的都好,点个赞呗亲们!!!...

2020-08-19 00:21:53 4855 3

原创 10行代码AC——UVA 11538-Chess Queen(数学规律+数列,附详细讲解)

励志用尽量少的代码做高效表达提交(题目)连接——>UVA-11538题目大意求在n*m棋盘上放2个不一样的皇后,且他们相互攻击的方案数,也就是说,求2个不同的皇后在同一行、同一列或同一对角线的所有情况。心路历程看到m、n的取值范围和样例的输出值,太大了!先确定这是一道规律题。 并且用long long存储。首先找规律,找到规律后要么打表,要么推数学公式。这道题可以采用分治的思想,将皇后攻击的种类分成三部分考虑:同行攻击,同列攻击和同对角线攻击。最后三部分相加。同行攻击:皇后A在每行

2020-08-18 23:56:06 831 1

原创 38行代码AC——UVA-167The Sultan‘s Successors(八皇后问题,附视频讲解)

最近备考蓝桥,学习到递归模块,从最基本的八皇后及其变种开始刷起(如果可以穿越,我一定要抓到发明递归的那个人,然后把他干掉,造福后世的算法er,555555)。题目大意一个人,没孩子,要在死前分割财产,然后出了一个题,让人们做,也就是八皇后,8 * 8 的棋盘,棋盘有64个值,不同的放置方案有不同的和,求最大的和就可得出答案。心路历程读懂题意后很容易看出来这是一道八皇后的变种题,因此做此题前一定要理解且背写出八皇后代码。这里附上n皇后原理的视频讲解——>传送门很快的敲出了八皇后的原码,与八

2020-08-18 17:40:09 698

原创 16行代码AC——紫书| 例题7-3 Fractions Again?! (UVA - 10976)_时间复杂度O(n)

励志用尽量少的代码做高效表达Problem describeIt is easy to see that for every fraction in the form 1/k(k > 0), we can always find two positive integers x and y, x ≥ y, such that:1/k=1/x+1/y1/k=1/x+1/y1/k=1/x+1/yNow our question is: can you write a program that co

2020-08-17 11:59:16 830 1

原创 43行代码AC_HDU-2604 Queuing(矩阵快速幂,附详细的知识讲解、模板例题)

一道经典的矩阵快速幂模板题。传送门1——>快速幂基本思想传送门2——>矩阵快速幂讲解(教主传授)传送门3.1——>HDU-1575(经典矩阵快速幂模板题1)传送门3.2——>HDU-1575题解传送门4.1——>HDU-1757(经典矩阵快速幂模板题2)传送门4.2——>HDU-1757题解心路历程1、由于昨天刷了两道快速矩阵幂,今天想着把这道题秒掉然后开始下一个专题。首先通过基本的代码求出规律,得到f(1)=2, f(2)=4, f(3)=6, f(

2020-08-16 13:42:09 1265

原创 43行代码AC——HDU 1757 A Simple Math Problem(矩阵快速幂,附快速幂讲解)

一道经典的矩阵快速幂模板题。传送门1——>快速幂基本思想传送门2——>矩阵快速幂讲解(教主传授)代码(去掉空行43行)#include<iostream>#include<cstring>using namespace std;int k, m;struct Matrix { //1、构建矩阵快速幂结构体 int a[10][10]; Matrix() { memset(a, 0, sizeof(a)); }};//5、构造矩阵运算mul

2020-08-15 22:01:46 639

原创 通俗易懂,快速幂基本思想

快速幂取模算法所谓的快速幂,实际上是快速幂取模的缩写,简单的说,就是快速的求一个幂式的模(余)。在程序设计过程中,经常要去求一些大数对于某个数的余数,为了得到更快、计算范围更大的算法,产生了快速幂取模算法。我们先从简单的例子入手:求abmodc a^{b} mod cabmodc算法1.直接设计这个算法:int ans = 1;for(int i = 1;i<=b;i++){ ans = ans * a;}ans = ans % c;缺点:这个算法存在着明显的问题,如果

2020-08-15 17:55:38 836

原创 40行代码AC_HDU 1575 TrA 矩阵快速幂(附快速幂+矩阵快速幂的讲解)

一道经典的矩阵快速幂模板题。如果对矩阵快速幂不了解请戳这里——>矩阵快速幂讲解(教主传授)心路历程1、开始看成求主对角线元素和的n次幂了,用快速幂解得。结果压根不对,又仔细看了下题,发现自己理解错了。汗-_-||2、学习快速矩阵幂的基本思想,花了大概一个小时吧,理解了快速矩阵幂后,开始尝试解题。3、很快就用敲出了代码,样例也能通过,但就是WA。于是猜想是不是取余出了问题,导致数值可能溢出?又多加了几处取余。成功AC。下面附上代码。AC代码#include<iostream&gt

2020-08-15 17:51:34 741

翻译 矩阵快速幂(教主传授)

快速幂的思想:假设我们要求a^b,最朴素的方法就是不断地乘a,乘b次,复杂度O(b)。如果b很大,10^9,就需要用快速幂的思想。例:a=3,b=100;100的二进制为:1100100也就是100可以化成64+32+4。所以原数可以化成a64*a32*a^4算法流程:判断1100100的每一位是否为1,如果是1,就乘对应的二进制次幂。以此类推,直到乘完全部的位数。时间复杂度O(log n)代码:int quickpow(int a,int b){ ans=1;

2020-08-15 11:52:52 390

原创 9行代码AC——HDU 6857 -Clockwise or Counterclockwise(2020 Multi-University Training Contest 8)(判断三点顺序)

Problem DescriptionIt is preferrable to read the pdf statment. After some basic geometric lessons, Cuber QQ has learned that one can draw one and only one circle across three given distinct points, on a 2D plane. Specialized in art, Cuber QQ has shown re.

2020-08-13 22:29:31 650

转载 约瑟夫环递推公式的由来(约瑟夫环公式法)

约瑟夫问题约瑟夫问题是个著名的问题:N个人围成一圈,第一个人从1开始报数,报M的将被杀掉,下一个人接着从1开始报。如此反复,最后剩下一个,求最后的胜利者。例如只有三个人,把他们叫做A、B、C,他们围成一圈,从A开始报数,假设报2的人被杀掉。首先A开始报数,他报1。侥幸逃过一劫。然后轮到B报数,他报2。非常惨,他被杀了C接着从1开始报数 接着轮到A报数,他报2。也被杀死了。最终胜利者是C解决方案普通解法刚学数据结构的时候,我们可能用链表的方法去模拟这个过程,N个人看作是N个链表节点,节

2020-08-12 23:22:01 1233

原创 12行代码AC——UVa 151 - Power Crisis(约瑟夫环)

励志用尽量少的代码做高效表达。提交(题目)链接——>UVa-151题意有n个电场,按约瑟夫环的规则断电,最后一个不断电,要求将最后一个断电的电场停在13号。分析知道约瑟夫环公式会很好解决:f[i+1] = (f[i]+m)%i    { f[0] = 0 },m为步数首先建立for循环,步数从1到n-1逐个尝试接下来开始n次循环,由于1号电场直接停掉,因此在直接2-n之间选择。在n次循环过程中,一旦发现电场号+1等于12,终止循环,输出。(从0开始,且1号电场已经被挖去)

2020-08-12 15:51:16 1354

原创 10行代码AC——UVa 10940(Throwing cards away II 数学规律+约瑟夫环)

励志用尽量少的代码做高效表达题目(提交)链接——>UVa-10940问题分析本题的时间要求是3s,但极限数据量为50W*50W,一般来说,3s的时间只能支持不到三千万次的运算,也就是说,即使以O(n)为复杂度做运算,也无法满足题意。分析到这里,我们很容易想到本题的思路是:找规律或预处理。首先使用基本方法打印出前100个数字的结果: 1 2 2 4 2 4 6 8 2 4 6 8 10 12 14 16 2 4 6 8 10 12 14 16 18 20

2020-08-12 13:54:24 691

原创 21行代码AC——HDU1106 排序

Problem Description输入一行数字,如果我们把这行数字中的‘5’都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以‘0’开头,这些头部的‘0’应该被忽略掉,除非这个整数就是由若干个‘0’组成的,这时这个整数就是0)。你的任务是:对这些分割得到的整数,依从小到大的顺序排序输出。Input 输入包含多组测试用例,每组输入数据只有一行数字(数字之间没有空格),这行数字的长度不大于1000。输入数据保证:分割得到的非负整数不会大于100000000;输入数据不可能全由

2020-08-07 11:40:07 633

【最新2021版】阿里巴巴Java开发手册

《阿里巴巴 Java 开发手册》始于阿里内部规约,在全球Java开发者共同努力下,已成为业界普遍遵循的开发规范,涉及到如变量的命名、类和方法的使用、不同结构的定义方法等,让初学者在刚刚接触开发时就以最正确的姿态来学习,达到事半功倍的效果。 毫不夸张的说,每一位编程者都需要这样一本开发手册。

2021-06-03

紫书第三章习题源码.zip

紫书第三章习题源码,里面有我对例题的一些心得、总结和感悟。 所选代码都是可以找到的最优解。

2020-05-15

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

TA关注的人

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