POJ
悟空 AI
这个作者很懒,什么都没留下…
展开
-
菜鸟学算法之POJ 1644 To Bet Or Not To Bet
这是一道典型的概率DP题目,做的人不多,而且目前的通过率大约是1/3,因此非常有研究的价值. 题目大意:Alexander 遇到了一个非常有趣的赌博游戏,在一条纸带上面,有若干小方格,第一个是Start方格,最后一个是End方格,除去这两个方格,还有m个方格.游戏开始的时候,赌注放在Start小方格中,以后每一轮中,先掷硬币,若是正面朝上,赌注向右移动1格,若是反面朝上,赌注向右移动2格,但是原创 2015-10-26 13:43:32 · 792 阅读 · 0 评论 -
二维平面深度优先-POJ 1020 Anniversary Cake
思路分析:AC 代码: 16 ms// 思路:这个问题没有巧妙的思路,于是只有贪心:能放下就放下,凑失败了就换一个。 // 将大蛋糕人为划分为 SIZE * SIZE 个小格子,然后“从上到下,从左到右”依次填充大蛋糕。 #include<iostream>#include<algorithm>#include<vector>using...原创 2018-12-18 14:44:35 · 204 阅读 · 0 评论 -
POJ_1276_多重背包
#include<iostream>#include<string.h>using namespace std;/********************* 多重背包问题 ************************///n = a0•2k + a 1•2k−1 + … + a k−1•21 + ak•20,其中a0 = 1,a1,a2,…,ak∈{ 0,1 ...原创 2018-12-28 13:44:46 · 136 阅读 · 0 评论 -
POJ 1328 Radar Installation 贪心算法
代码如下:// 贪心算法#include<iostream>#include<algorithm>#include<math.h>using namespace std;// 包含左右端点struct interval{ double left; double right;};interval intervals[1002];...原创 2018-12-21 13:46:05 · 354 阅读 · 0 评论 -
POJ 2362 Square 深度优先
大致题意:有一堆任意长度的小棒子,问他们能否构成一个正方形。 解题思路:与 POJ 1011 Sticks 神似啊,但是简单一点。// POJ 1011 的精简版//#include "stdafx.h"#include<iostream>#include<string.h>#include<algorithm>using n...原创 2018-12-20 11:21:39 · 208 阅读 · 0 评论 -
基础算法系列之深度优先搜索
在计算机的基础算法领域,深度优先搜索无疑是非常重要的一种编程方法,它的作用和价值,类似于常规算法中的排序,具有两个特点: (1)常用。当我们需要搜索问题的解决方案时,最常用的只有两种方法:深度优先搜索和广度优先搜索; (2)标准化。与快速排序类似,虽然实现的方法千变万化,但是遵循固定的步骤,第一步做什么,第二步做什么,都非常的明确。所以呢,只要吃透几个经典的问题,有...原创 2018-11-28 20:12:56 · 329 阅读 · 0 评论 -
有n个带编号的人和n个带编号的座位,求每个人都不坐在相同号码座位的方案数目
题目描述: 有 n 位同学编号分别为1, 2, ..., n; 有 n 个座位编号分别为1, 2, ..., n。 现在为每一位同学安排一个座位,求每个同学都坐在与自己编号不同的座位的方案数目。分析:动态规划思想: 假设 i 位同学,i 个座位,满足题意的方案数为 f(i)。 考察分别有 (i-1) 和 i 位同学的情况。 为了形象化地进行思考...原创 2018-10-14 13:33:54 · 5201 阅读 · 1 评论 -
全组合 网易笔试 数字游戏
题目描述:小易邀请你玩一个数字游戏,小易给你一系列的整数。你们俩使用这些整数玩游戏。每次小易会任意说一个数字出来,然后你需要从这一系列数字中选取一部分出来让它们的和等于小易所说的数字。 例如: 如果{2,1,2,7}是你有的一系列数,小易说的数字是11.你可以得到方案2+2+7 = 11.如果顽皮的小易想坑你,他说的数字是6,那么你没有办法拼凑出和为6 现在小易给你n个数,让你找出无法从n个数...原创 2018-10-03 12:27:28 · 221 阅读 · 0 评论 -
合唱团 N个学生中选K个,相邻两个的位置编号不超过D,使得K个学生乘积最大
网易2016内推笔试题:有 n 个学生站成一排,每个学生有一个能力值,从这 n 个学生中按照顺序选取 k 名学生,要求相邻两个学生的位置编号的差不超过 d,使得这 k 个学生的能力值的乘积最大,返回最大的乘积。 每个输入包含 1 个测试用例。每个测试数据的第一行包含一个整数 n (1 <= n <= 50),表示学生的个数,接下来的一行,包含 n 个整数,按顺序表示每个学生的能力值...原创 2018-09-23 12:23:06 · 821 阅读 · 0 评论 -
POJ 3624 01背包问题
/** 纯粹的 01 背包问题!* Accepted 204 K 360 ms*/#include<iostream>using namespace std;int * w, *v;int n;int max_w; // 最大允许的重量int * dp;inline int max(int a, int b){ return (a > b) ? ...原创 2018-08-16 11:33:26 · 227 阅读 · 0 评论 -
poj 1321 棋盘问题
/** 1. 题目描述:* 给定一个不规则的棋盘,在棋盘上放置k个棋子,要求任意两个棋子不能在同一行或者同一列,输出可行的摆放方法数目。* 2. 问题分析:* 摆放k个棋子,本质上来说,是一个k阶段决策问题。* 因为:(1)不是最优化问题; (2)有明显的后效性, 所以不能用动态规划* 于是想到用 深度优先搜索* 3. 需要注意的问题* 3.1 如何区分不同的方案 ?* ...原创 2018-08-13 12:30:31 · 217 阅读 · 0 评论 -
poj 1011 深度优先搜索 Sticks
深度优先搜索的经典例题:有若干根相同长度的木棍,George随机地将它们砍成N个部分,现在他想把N个小木棍拼回原来的木棍,但是他忘了原来木棍的长度L。请设计一个程序,找出最小的可能的原始木棍长度L。分析:(1)为什么不用动态规划而是要用深度优先搜索? 原因1: 求解目标不同。动态规划和深度优先搜索的共同点是都是处理多个阶段的决策问题,但是动态规划是寻求最优解,而本题中...原创 2018-08-12 11:01:38 · 312 阅读 · 0 评论 -
菜鸟学算法之POJ 1564 Sum It Up
POJ 1564 Sum It Up原创 2015-10-26 17:07:46 · 641 阅读 · 0 评论 -
菜鸟学算法之POJ1636 Prison Rearrangement
菜鸟学算法之POJ1636 Prison Rearrangement原创 2015-10-19 22:15:13 · 1735 阅读 · 0 评论 -
菜鸟学算法之 POJ 3007 Organize Your Train part II
POJ 3007 Organize Your Train part II原创 2016-03-23 11:34:07 · 992 阅读 · 0 评论 -
菜鸟学算法之 POJ1011 Sticks
这道题真是太经典了,学 dfs 必须理解透彻./** 参考了网上大神的思路,代码均为原创.* 这道题在 dfs 类型中的经典地位无可动摇,包含很多的剪枝,每一个剪枝都需要花心思好好想.* AC : 132K 16ms*/#include#include#include#includeusing namespace std;int a[66]; // 存储所原创 2015-10-31 19:54:49 · 662 阅读 · 0 评论 -
POJ 2392 Space Elevator 多重背包
分析: 在多重背包的基础上增加一个简单的约束条件:每个砖块都有高度限制所以,注意两点: (1) 遍历所有砖块时,必须按照高度限制从低到高,否则无法取得最优解;(2)遍历高度 dp 时,遍历范围为: [ h[i], a[i] ] ,其中 h[i] 为第 i 种砖块的高度,a[i] 为第 i 种砖块的高度限制。明白了以上两点,代码就没什么技术难度了:// POJ_2392_...原创 2019-01-08 10:54:13 · 189 阅读 · 0 评论