算法
cf1ybird
菜鸟一枚,没啥好简述的- -
头像pid=20179063
展开
-
完全背包
与01背包区别就是东西有无限多个/*完全背包*/#include <stdio.h>#include <string.h>int max(int a,int b){ return a>b?a:b;}int main(){ int n; scanf("%d",&n); int c[2000],w[2000],f[50000]; //c物品重量 w物品价原创 2017-04-01 17:22:20 · 226 阅读 · 0 评论 -
最大映射(今日头条2017笔试)
开始刷笔试题了~ 先放题→→ 有 n 个字符串,每个字符串都是由 A-J 的大写字符构成。现在你将每个字符映射为一个 0-9 的数字,不同字符映射为不同的数字。这样每个字符串就可以看做一个整数,唯一的要求是这些整数必须是正整数且它们的字符串不能有前导零。现在问你怎样映射字符才能使得这些字符串表示的整数之和最大? 输入描述: 每组测试用例仅包含一组数据,每组数据第一行为一个正整数 n , 接下原创 2017-09-24 12:21:15 · 658 阅读 · 0 评论 -
迷宫最短路径问题(BFS)
别人博客上看到的一道题:给定一个大小为N*M的迷宫,由通道(‘.’)和墙壁(‘#’)组成,其中通道S表示起点,通道G表示终点,每一步移动可以达到上下左右中不是墙壁的位置。试求出起点到终点的最小步数。(本题假定迷宫是有解的)(N,M<=100) 原地址:http://blog.csdn.net/lrgdongnan/article/details/51773728比较基础的迷宫题,用BFS算法即可,原创 2017-04-01 18:13:20 · 1491 阅读 · 0 评论 -
算24点(DFS)
给出4个数进行+-*/四则运算,判断能否组合为24,每个数只能使用一次。输出只需要判断出能否组成24即可。 自己依旧没能独立写出来orz,先放上思路来源:http://www.cnblogs.com/konjak/p/5883283.html 方法是穷举法,把4个数以任意组合进行4则运算,由于是将所有数都进行排列组合两两运算,所以不需要考虑括号(括号的情况已经包含在内)。 每次运算都将结果保存原创 2017-04-04 20:10:40 · 3382 阅读 · 0 评论 -
01背包
有一个包和n个物品,包的容量为m,每个物品都有各自的体积和价值,问当从这n个物品中选择多个物品放在包里而物品体积总数不超过包的容量m时,能够得到的最大价值是多少?(对于每个物品不可以取多次,最多只能取一次) 动态规划题型 利用递归实现,用一个2维数组f进行状态标记,减少递归次数#include <iostream>using namespace std;#define vbao 100#d原创 2017-04-01 16:58:31 · 351 阅读 · 0 评论 -
蓝桥杯 学霸的迷宫 (BFS)
问题描述 学霸抢走了大家的作业,班长为了帮同学们找回作业,决定去找学霸决斗。但学霸为了不要别人打扰,住在一个城堡里,城堡外面是一个二维的格子迷宫,要进城堡必须得先通过迷宫。因为班长还有妹子要陪,磨刀不误砍柴功,他为了节约时间,从线人那里搞到了迷宫的地图,准备提前计算最短的路线。可是他现在正向妹子解释这件事情,于是就委托你帮他找一条最短的路线。 输入格式 第一行两个整数n,原创 2017-04-02 18:11:09 · 4688 阅读 · 3 评论 -
NYOJ-21 三个水杯(BFS)
给出三个水杯,大小不一,并且只有最大的水杯的水是装满的,其余两个为空杯子。三个水杯之间相互倒水,并且水杯没有标识,只能根据给出的水杯体积来计算。现在要求你写出一个程序,使其输出使初始状态到达目标状态的最少次数。 题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=21用广度搜索算法就能做出了#include <cstring>#inclu原创 2017-04-01 18:03:17 · 475 阅读 · 0 评论 -
尼姆博弈
游戏规则就是:有三堆各若干个物品,两个人轮流从某一堆取任意多的物品,规定每次至少取一个,多者不限,最后取光者得胜。 网上看了半天分析也不太明白,为什么3个堆物品数分别转化成2进制之后异或如果为0则必定能赢,总之方法是这样吧….对每个堆进行二进制异或运算,如果结果为0则必赢,否则必输(是建立在双方都非常聪明的情况下,其实只要知道这个技巧就好了吧- -)#include <iostream>usin原创 2017-04-01 17:58:32 · 412 阅读 · 0 评论 -
NYOJ-23 取石子(巴什博弈)
一天,TT在寝室闲着无聊,和同寝的人玩起了取石子游戏,而由于条件有限,他/她们是用旺仔小馒头当作石子。游戏的规则是这样的。设有一堆石子,数量为N(1<=N<=1000000),两个人轮番取出其中的若干个,每次最多取M个(1<=M<=1000000),最先把石子取完者胜利。我们知道,TT和他/她的室友都十分的聪明,那么如果是TT先取,他/她会取得游戏的胜利么? 题目链接:http://acm.nyi原创 2017-04-01 17:49:39 · 312 阅读 · 0 评论 -
NYOJ-106 背包问题(贪心)
南阳OJ上的一个背包问题,注意是单位价值,因为物品可分割,用贪心法即可解决。题目地址http://acm.nyist.net/JudgeOnline/problem.php?pid=106#include <iostream>#include <algorithm>using namespace std;struct wup{ int v; //单位价值 int w;原创 2017-04-01 17:29:16 · 299 阅读 · 0 评论 -
N皇后问题(回溯法)
代码其实只写了4个皇后,当做回溯法模板用吧–/*N皇后问题 回溯模板 m*n棋盘放皇后位置*/#include <iostream>using namespace std;int main(){ int a[10]; int i=1; a[i]=1; while (1) { int g=1; for(int k=i原创 2017-04-01 17:25:44 · 511 阅读 · 0 评论 -
或与加(今日头条笔试)
给定 x, k ,求满足 x + y = x | y 的第 k 小的正整数 y 。 | 是二进制的或(or)运算,例如 3 | 5 = 7。 比如当 x=5,k=1时返回 2,因为5+1=6 不等于 5|1=5,而 5+2=7 等于 5 | 2 = 7。 输入描述: 每组测试用例仅包含一组数据,每组数据为两个正整数 x , k。 满足 0 < x , k ≤ 2,000,000,000。 输原创 2017-09-24 21:35:02 · 880 阅读 · 0 评论