自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

yanhua_tj的博客

一切都会好的,城南的花都开了。

  • 博客(38)
  • 收藏
  • 关注

原创 博客搬家

博客搬家至yanhua-tj博客园

2020-11-21 22:25:41 216

原创 算法:骨牌铺方格(递推)

算法:骨牌铺方格(递推)Description在2×n的一个长方形方格中,用一个1× 2的骨牌铺满方格,输入n ,输出铺放方案的总数. 例如n=3时,为2× 3方格,骨牌的铺放方案有三种,如下图: Input输入数据由多行组成,每行包含一个整数n,表示该测试实例的长方形方格的规格是2×n (0< n<=50)。Output对于每个测试实例,请输出铺放方案的总数,每个实例的输出占一行。Sample Input132Sample Output132HINT此题用l

2020-11-11 23:43:03 808

原创 今年暑假不AC(贪心)

今年暑假不AC(贪心)今年暑假不ACDescription“今年暑假不AC?”“是的。”“那你干什么呢?”“看世界杯呀,笨蛋!”“@#$%^&*%…”确实如此,世界杯来了,球迷的节日也来了,估计很多ACMer也会抛开电脑,奔向电视了。作为球迷,一定想看尽量多的完整的比赛,当然,作为新时代的好青年,你一定还会看一些其它的节目,比如新闻联播(永远不要忘记关心国家大事)、非常6+7、超级女生,以及王小丫的《开心辞典》等等,假设你已经知道了所有你喜欢看的电视节目的转播时间表,你会合理安排吗

2020-11-11 23:18:03 289

原创 sync_with_stdio(false)和cin.tie(NULL)

std::ios::sync_with_stdio(false)这个函数相当于是否兼容stdio的开关,默认为trueC++为了兼容C,保证程序在使用了std::printf和std::cout的时候不发生混乱,将输出流绑到了一起。cin,cout之所以效率低,是因为先把要输出的东西存入缓冲区,再输出,导致效率降低。而ios::sync_with_stdio(false);可以不经过输入输出缓存,可以节省许多时间,使效率与scanf与printf相差无几注意的是:scanf与printf使用的头

2020-11-07 00:56:49 1058

原创 会场安排问题(贪心 两种方法)

会场安排问题(贪心)Description假设要在足够多的会场里安排一批活动,并希望使用尽可能少的会场。设计一个有效的贪心算法进行安排。(这个问题实际上是著名的图着色问题。若将每一个活动作为图的一个顶点,不相容活动间用边相连。使相邻顶点着有不同颜色的最小着色数,相应于要找的最小会场数。) 对于给定的k个待安排的活动,计算使用最少会场的时间表。Input输入数据的第一行有1 个正整数k(k≤10000),表示有k个待安排的活动。接下来的k行中,每行有2个正整数,分别表示k个待安排的活动开始时间和结束时

2020-11-07 00:31:59 9248

原创 整数因子分解问题(递归分治法、动态规划)

Description大于1的正整数n可以分解为:n=x1 * x2 * … * xm。 例如,当n=12 时,共有8 种不同的分解式: 12=12; 12=6 * 2; 12=4 * 3; 12=3 * 4; 12=3 * 2 * 2; 12=2 * 6; 12=2 * 3 * 2; 12=2 * 2 * 3。 对于给定的正整数n,计算n共有多少种不同的分解式。Input输入数据只有一行,有1个正整数n (1≤n≤2000000000)。Output将计算出的不同的分解式数输出。Sample

2020-11-06 01:26:05 10817 1

原创 背包问题(动态规划 C/C++)

Description卖方:这件商品14元买方:给你20元卖方:不好意思,我的零钱不够买方:好吧,这是15元,剩的当小费当到一个地方旅游时,如果你买东西的地方不支持信用,带零钱还是非常有用的。特别是有时候卖方没有零钱,如果你没有刚好的钱,你需要支付比卖价多一点。当然你想付尽量少的钱(至少是商品价值的钱)。并且,当支付最少钱的时候,也最好是支付的硬币的数量最少。Input第一行包含一个整数表示测试数据的组数。每组测试数据每一行包含一个整数,表示你需要付的钱数,钱数不超过10000元。接下来包含

2020-10-31 21:17:58 1461

原创 划分问题(Java 动态规划)

Description给定一个正整数的集合A={a1,a2,….,an},是否可以将其分割成两个子集合,使两个子集合的数加起来的和相等。例A = { 1, 3, 8, 4, 10} 可以分割:{1, 8, 4} 及 {3, 10}Input第一行集合元素个数n  n <=300 第二行n个整数Output如果能划分成两个集合,输出任意一个子集,否则输出“no”Sample Input51 3 8 4 10Sample Output3 10一开始t[i][j]都为false递

2020-10-19 23:32:20 983

原创 算法:Common Subsequence(动态规划 Java 最长子序列)

DescriptionA subsequence of a given sequence is the given sequence with some elements (possible none) left out. Given a sequence X = < x1, x2, …, xm > another sequence Z = < z1, z2, …, zk > is a subsequence of X if there exists a strictly incr

2020-10-07 22:52:25 277

原创 算法:矩阵连乘(Java)动态规划

Description给你2个矩阵A、B,我们使用标准的矩阵相乘定义C=AB如下:A数组中栏(column)的数目一定要等于B数组中列(row)的数目才可以做此2数组的相乘。若我们以rows(A),columns(A)分 别代表A数组中列及栏的数目,要计算C数组共需要的乘法的数目为:rows(A)*columns(B)*columns(A)。例如:A数组是一个 10x20的矩阵,B数组是个20x15的矩阵,那么要算出C数组需要做101520,也就是3000次乘法。 要计算超过2个以上的矩阵相乘就得决

2020-10-06 23:28:52 935

原创 Frogs‘ Neighborhood(POJ 1659 C/C++)

poj 1659Description未名湖附近共有N个大小湖泊L1, L2, …, Ln(其中包括未名湖),每个湖泊Li里住着一只青蛙Fi(1 ≤ i ≤ N)。如果湖泊Li和Lj之间有水路相连,则青蛙Fi和Fj互称为邻居。现在已知每只青蛙的邻居数目x1, x2, …, xn,请你给出每两个湖泊之间的相连关系。Input第一行是测试数据的组数T(0 ≤ T ≤ 20)。每组数据包括两行,第一行是整数N(2 < N < 10),第二行是N个整数,x1, x2,…, xn(0 ≤ xi ≤

2020-10-05 21:58:43 494

原创 算法:线性时间选择(C/C++)

Description给定线性序集中n个元素和一个整数k,n<=2000000,1<=k<=n,要求找出这n个元素中第k小的数。Input第一行有两个正整数n,k.接下来是n个整数(0<=ai<=1e9)。Output输出第k小的数Sample Input6 31 3 5 2 4 6Sample Output3利用快速排序可以找出第k小的,加上随机函数改进一下:AC代码:#include <cstdio>#include <c

2020-09-27 22:26:44 8037 1

原创 sort(hdu oj 1425)计数排序和快速排序

Description给你n个整数,请按从大到小的顺序输出其中前m大的数。Input每组测试数据有两行,第一行有两个数n,m(0 < n,m < 1000000),第二行包含n个各不相同,且都处于区间[-500000,500000]的整数。Output对每组测试数据按从大到小的顺序输出前m大的数。Sample Input5 33 -35 92 213 -644Sample Output213 92 3emm一开始呢,用快速排序找前m大的数一提交,超时……淦后来度娘

2020-09-22 00:28:13 353

原创 快速排序(递归和分治)

算法思想先通过一个函数,标记第一个元素为基准元素,然后分为左边都是大于基准元素的右边都是小于基准元素的然后使用排序函数分别对左半段和右半段进行排序时间复杂度最坏情况:O(n2)O(n^2)O(n2)最好情况:O(nlog2n)O(nlog_2n)O(nlog2​n)平均情况:O(nlog2n)O(nlog_2n)O(nlog2​n)动态演示图图片来源C/C++代码实现#include <cstdio>#include <cstdlib>void qui

2020-09-21 13:23:06 357

原创 a^b(取模运算)

Description对于任意两个正整数a,b(0 <= a, b < 10000)计算ab各位数字的和的各位数字的和的各位数字的和的各位数字的和。Input输入有多组数据,每组只有一行,包含两个正整数a,b。最后一组a=0,b=0表示输入结束,不需要处理。Output对于每组输入数据,输出ab各位数字的和的各位数字的和的各位数字的和的各位数字的和。Sample Input2 35 70 0Sample Output85用到的知识点(a+b)%mod=((a%m

2020-09-20 17:55:26 2557

原创 To the Max(动态规划)

DescriptionGiven a two-dimensional array of positive and negative integers, a sub-rectangle is any contiguous sub-array of size 1*1 or greater located within the whole array. The sum of a rectangle is the sum of all the elements in that rectangle. In this

2020-09-20 00:02:29 750

原创 最大子段和问题(C/C++)

Description给定有n个整数(可能为负整数)组成的序列a1, a2, …, an,求该序列连续的子段和的最大值。 如果该子段的所有元素和是负整数时定义其最大子段和为0。Input第一行有一个正整数n(n<1000),后面跟n个整数,绝对值都小于10000。直到文件结束。Output输出它的最大子段和。Sample Input6 -2 11 -4 13 -5 -2Sample Output20参考链接: 最大字段和详解穷举法时间复杂度:O(n3)O(n^3)O(n

2020-09-19 19:03:58 6005 1

原创 最多约数问题(Java)

Description正整数x 的约数是能整除x 的正整数。正整数x的约数个数记为div(x)。例如,1,2,5,10 都是正整数10的约数,且div(10)=4。设a 和b是2 个正整数,a≤b,找出a 和b之间约数个数最多的数x。对于给定的2 个正整数a≤b,计算a 和b之间约数个数最多的数。Input输入数据的第1行有2个正整数a和 b,a≤1000000000,b≤1000000000。Output若找到的a 和b之间约数个数最多的数是x,将div(x)输出。Sample Input1

2020-09-18 00:28:29 400 1

原创 字典序问题(Java)

Description在数据加密和数据压缩中常需要对特殊的字符串进行编码。给定的字母表A由 26 个小写英文字母组成A={a,b,…,z}。该字母表产生的升序字符串是指字符串中字母按照从左到右出现的次序与字母在字母表中出现的次序相同,且每个字符最多出现1次。例如,a,b,ab,bc,xyz等字符串都是升序字符串。现在对字母表A 产生的所有长度不超过6 的升序字符串按照字典序排列并编码如下。对于任意长度不超过6 的升序字符串,迅速计算出它在上述字典中的编码。对于给定的长度不超过6 的升序字符串,计

2020-09-12 21:50:21 454

原创 统计数字问题(Java)

统计数字问题(Java)Description一本书的页码从自然数1 开始顺序编码直到自然数n。书的页码按照通常的习惯编排,每个页码都不含多余的前导数字0。例如,第6 页用数字6 表示,而不是06 或006 等。数字计数问题要求对给定书的总页码n,计算出书的全部页码中分别用到多少次数字0,1, 2,…,9。给定表示书的总页码的10 进制整数n (1≤n≤10^9) 。计算书的全部页码中分别用到多少次数字0,1,2,…,9。Input输入数据只有1 行,给出表示书的总页码的整数n。Output输出

2020-09-07 22:41:28 1018

原创 C++运行时类型判断dynamic_cast和typeid

dynamic_castdynamic_cast < Type-id > ( expression )dynamic_cast<类型>(变量)在运行期间检测类型转换是否安全dynamic_cast < Type-id > ( expression )将基类指针转换为派生类指针,将基类引用转换为派生类引用;转换是有条件的如果指针(或引用)所指对象...

2020-04-23 21:10:53 1908 1

转载 复制构造函数

复制构造函数的深拷贝与浅拷贝

2020-04-09 00:24:12 124

原创 数据结构实训——哈夫曼(Huffman)编/译码器

题目4、哈夫曼(Huffman)编/译码器(限1人完成)【问题描述】利用哈夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。但是,这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的数据进行译码(复原)。对于双工信道(即可以双向传输信息的信道),每端都需要一个完整的编/译码系统。试为这样的信息收发站写一个哈夫曼码的编/译码系统。首先输入一段包含27个字符(包...

2020-03-29 15:17:36 7749 1

原创 数据结构实训——运动会分数统计

题目1: 运动会分数统计(限1 人完成)任务:参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m<=20,n<=20)功能要求:输入各个项目的前三名或前五名...

2020-03-29 14:56:37 6789 4

原创 C++ const的自我理解

C++学习笔记–constconst 是 constant 的缩写,本意是不变的,不易改变的意思。在 C++ 中是用来修饰内置类型变量,自定义对象,成员函数,返回值,函数参数。C++ const 允许指定一个语义约束,编译器会强制实施这个约束,允许程序员告诉编译器某值是保持不变的。如果在编程中确实有某个值保持不变,就应该明确使用const,这样可以获得编译器的帮助。引用菜鸟教程常变量...

2020-03-24 00:07:35 321

原创 VScode,code::blocksC语言编译运行出现不支持的16位应用程序解决方法

最近,莫名其妙c代码就是编译运行不了,老是提示不支持的16位应用程序然后网上找了各种教程只有这个成功了(害得我还升了下系统)实现进入Windows设置然后点更新和安全——恢复然后点高级启动——立即重新启动然后选择疑难解答选择高级选项选择启动设置这里看启用安全模式前面的数字,然后按对应的Fn键启动安全模式...

2019-12-06 11:17:39 6112 13

原创 利用Vmware workstation安装MS-DOS使用Turbo C 2.0

首先上各种软件的链接链接:https://pan.baidu.com/s/1HfTDexiJSpioUnzKddUIyA提取码:khtu打开VMware-workstation-full-15.0.3-12422535.exe第一次安装可能会提示重启,重启完再点一遍安装即可勾上增强型键盘驱动程序,下一步接受,下一步把启动检查产品更新,加入体验提升计划取消勾,下一步下一步...

2019-04-01 23:25:11 3208 2

原创 C++中STL的sort函数

简单介绍C++ sort函数这个函数需要这个东西#include &lt;algorithm&gt;using namespace std;这个sort( , , )可以带两个参数也可以三个参数第一个参数是数组的首地址,一般写上数组名就可以,因为数组名是一个指针常量。第二个参数,首地址加上数组的长度n(代表尾地址的下一地址)最后一个参数是比较函数的名称(自定义函数cmp)...

2018-11-28 22:55:35 532

原创 二分

二分以前高中数学求零点时提到了二分法和那个差不多的就是平均分成两份,然后看满足条件的那个在哪一份中再把那一份再平均分,再看满足条件的那个再哪一份中以此类推二分适用于1、具有单调性的题目2、可判断的题目3、会减少复杂度例:在数组a[10]={1,3,5,7,9,10,11,17,18,19}中判断一个数在不在数组中可以用循环判断,也可以用标记法但是如果查找的数组比较大,效率...

2018-11-28 22:39:42 127

原创 前缀和,积,后缀和,积

文章目录位运算~取反符号&amp;amp;amp;lt;&amp;amp;amp;lt;,&amp;amp;amp;gt;&amp;amp;amp;gt; 左移,右移符号&amp;amp;amp;amp; 位与运算符| 位或运算符^ 异或运算符EOF和scanf函数scanf函数的返回值while(scanf(&amp;amp;quot;xxx&amp;amp;quot;)!=EOF)while(~scanf(&amp;amp;quot;xxx

2018-11-23 09:38:17 1670

原创 哈希和素数打表

输入一个数判断数组中是否存在这个数输入一个数判断数组中是否存在这个数举例子吧一个数组a[7]={1,5,7,2,13,9,8}然后再定义一个a数组中最大元素+1的数组b[14]={0};for(i=0;i&lt;7;i++)b[a[i]]=1;如果输了一个数w,则需要判断b[w]是不是为1,如果是1,a数组里有这个数输入一个数判断数组中是否存在这个数并输出这个数在数组中的下标举例...

2018-11-23 07:54:52 261

原创 取模运算

取模运算主要是用来求两个大数a,b进行 + or - or * 后对某个数mod求余比如a+b或者a*b超过了long long int ,就要用取模运算把值限制在0~mod内加法(a+b)%mod=(a%mod+b%mod)%mod;减法(a-b)%mod=(a%mod-b%mod)%mod;乘法(ab)%mod=(a%mod)(b%mod)%mod;除法 (用到逆元,尚未了解...

2018-11-23 07:52:45 5737

原创 EOF和scanf函数

EOF和scanf函数scanf函数的返回值scanf函数返回成功读入的数据项数,读入数据时遇到了“文件结束(end of file)”或者错误则返回EOF,EOF定义为int型的-1,end of file 为Ctrl+Z或Ctrl+D。例:scanf("%d",&amp;a); 正常取值返回1scanf("%d,%d",&amp;a,&amp;b); 正常取值返回2如果输入1,2,...

2018-11-23 07:50:06 929 1

原创 尺取

这种方法用于,需要在给的一组数据中找到不大于某个上限的“最优连续子序列”poj 3061题给长度为n的数组和一个整数m,求总和不小于m的连续子序列的最小长度输入n=10,m=155 1 3 5 10 7 4 9 2 8输出2...

2018-11-23 07:21:25 2743

原创 GCD最大公约数

给出a,b求a和b最大公约数a是由b的倍数+余数1得到的辗转相除法b是由前面的余数1的倍数+余数2得到的以此类推直到余数n为0,余数n-1就是最大公倍数a=b倍数+p1;b=p1倍数+p2;p1=p2*倍数+p3;……p n-2=p n-1 * 倍数+0;p n-1就是最大公约数下面上代码#include &lt;stdio.h&gt;int GCD(int a,i...

2018-11-23 00:07:45 633

原创 快速幂

快速幂和快速乘差不多也是a,b两个数,ab 对mod求余ab 可能超出范围所以要把b转成二进制,分成几次运算例:a=11,b=11;b=11,二进制1011a ^ (1 * 23 + 0 * 22 + 1 * 21 + 1 * 20) = a8+2+1=a11下面是代码#include &amp;lt;stdio.h&amp;gt;int fast_pow(int a,int b,int mo...

2018-11-22 23:52:01 125

原创 快速乘

快速乘我们先来谈谈,两个大数(可能会超long long int)相乘对mod求余

2018-11-22 23:40:37 229

原创 位运算

文章目录位运算~取反符号&lt;&lt;,&gt;&gt; 左移,右移符号&amp; 位与运算符| 位或运算符^ 异或运算符位运算~取反符号十进制2 --&gt;10 (B)~10=01 十进制 1&lt;&lt;,&gt;&gt; 左移,右移符号&lt;&lt;是左移符号例 4&lt;&lt;1就是100左移一位变成1000得到8&gt;&gt;是右移符号例 4

2018-11-22 23:04:52 139

空空如也

空空如也

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

TA关注的人

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