
算法
li_il
₩是什么
展开
-
C/C++的移位运算
简介移位运算是位运算的一种,具有简介高效的特点。原理就是将存储数值的二进制数进行左移(<<)或者右移(>>)。左移位(<<)例如10对应的二进制数是1010,左移一位就变成了10100,位数增加了一位,数值扩大了两倍。就像十进制的10,左移一位,变成100,其值就扩大了10倍。示例代码#include<iostream>usi...原创 2019-12-02 00:47:20 · 1288 阅读 · 0 评论 -
01背包问题
题目描述给定N种物品和一个容量为V的背包,物品i的体积是wi,价值为vi。从这些物品中挑选出总重量不超过W的物品,求所有挑选方案中价值总和的最大值。限制条件1<=n<=1001<=wi,vi<=1001<=W<=10000样例输入n=4(w,v)={ (2,3) , (1,2) , (3,4) , (2,2) }W=5...原创 2019-11-29 17:39:46 · 307 阅读 · 0 评论 -
Fence Repair(POJ3253)
题目描述DescriptionFarmer John wants to repair a small length of the fence around the pasture. He measures the fence and finds that he needsN(1 ≤N≤ 20,000) planks of wood, each having some integ...原创 2019-11-26 01:00:47 · 150 阅读 · 0 评论 -
动态规划之扔鸡蛋(或手机)问题
引入有2个鸡蛋,从100层楼上往下扔,以此来测试鸡蛋的硬度。比如鸡蛋在第9层没有摔碎,在第10层摔碎了,那么鸡蛋不会摔碎的临界点就是9层。问:如何用最少的尝试次数,测试出鸡蛋不会摔碎的临界点?分析注意:题目的一个隐含在该最少次数下,一定能测出。完美解决这个问题的思路是先逆向假设存在一个最优解x,第一次就应该从x层开始扔。为什么要从第x层开始扔呢?假设第一次扔在第x+1层...原创 2019-03-23 16:17:09 · 1126 阅读 · 3 评论 -
2018年第九届蓝桥杯省赛题解
第一题:第几天2000年的1月1日,是那一年的第1天。那么,2000年的5月4日,是那一年的第几天?注意:需要提交的是一个整数,不要填写任何多余内容。可以用Excel,也可以用计算器,也可以用日历,也可以。。。口算。嗯。答案是125。但是我在比赛的时候填的是124。因为我以为填的是时间间隔。第二题:明码汉字的字形存在于字库中,即便在今天,16点阵的字库也仍然使用广...原创 2019-03-22 01:29:15 · 1156 阅读 · 1 评论 -
最长上升子序列问题(LIS)
题目有一个长为n的数列a0,a1,...,a(n-1)。请求出这个序列中最长的上升子序列的长度。上升子序列指的是对于任意的i<j都满足ai<aj的子序列。限制条件:1<=n<=1000, 0<=ai<=1000000样例输入:n=5 a={4,2,3,1,5}输出:3(a1,a2,a4构成的子序列)分析最长上升子序列...原创 2019-03-21 11:19:23 · 755 阅读 · 0 评论 -
《挑战程序设计竞赛》学习笔记(例题分析)
深度优先搜索深度优先搜索(Depth-First Search,简称DFS)是最常用的搜索方法之一,它的思想为“一条路走到底”。例如要遍历下图图片来源若以0为起点,则dfs的遍历路径为0->1->4->5,此时已无路可走,于是便开始回退,直到1的位置,然后再沿另外一个方向开始遍历1->6->2。其算法常为如下结构void dfs(int ste...原创 2019-03-15 00:12:12 · 579 阅读 · 0 评论 -
用C++生成一百以内的随机数
#include<iostream>#include<cstdlib> //srand和rand头文件#include<windows.h> //sleep头文件#include<ctime> //time头文件using namespace std;int main(){ //以当前时间作为随机数的“种子” srand(time...原创 2018-03-10 11:31:16 · 5477 阅读 · 0 评论 -
最大子序列求和详解
主要是课堂PPT上的内容,但是觉得很有启发意义,遂记录下来题目给定(可能是负的)整数序列A1,A2。。。An,寻找(并标识)值为最大的序列。如果所有的整数都是负的,那么最大连续子序列的和是零。例如,假设输入是{-2, 11, -4, 13, -5, 2},那么答案是20,它表示连续子序列包含了第2项到第4项(如粗体字部分)。又如第二个例子,对于输入{1, -3, 4, -2, -1...原创 2019-01-10 01:50:28 · 2581 阅读 · 1 评论 -
算法之美
利用布尔值的技巧1.读入数据while(scanf(“%d%d”,&n,&m) == 2 && n && m){ }将一个字符串读入字符数组:char chString[256];scanf(“%s”,chString); //可直接将读入的字符串放入字符数组。注意:1.不同于读入数字的地方是没有 &a...原创 2018-11-18 01:02:32 · 443 阅读 · 0 评论 -
动态规划(基于C++)
文章基于此篇微信推送https://mp.weixin.qq.com/s/3h9iqU4rdH3EIy5m6AzXsg简介动态规划是一种由问题的最小子状态(边界)不断推出更大的状态,最后解决整个问题的解题思想。基础概念最优子结构:状态可被分解为的子状态 边界:无需在继续简化的最小子状态 状态转移公式:状态与其子状态间关系的描述公式 记忆话搜索:将每个状态对应的值记录下来,...转载 2018-11-20 01:46:39 · 1842 阅读 · 0 评论