我又写了一个简洁版的2.0: 可以作为博弈搜索树的模板  : https://www.cnblogs.com/xidian-mao/p/9389974.html 废话ps: 开始觉得这是一道简单得博弈 3*3暴力肯定可以解决问题   刚该开始得思路是直接dfs()判断谁输谁赢了,后来发现题意要输出最优解得情况(最后卡在哪好久: 还是自己太自信了: 最后五点去上了个厕所:路上想到了dfs可以返回赢的最小步数和输的最大步数这应该是最优解了-----T&T 最后没时间交了,回来补得,试了一些数据感觉没…
#include<iostream> #include<vector> #include<algorithm> #include<stack> #define N 10010 using namespace std; vector<long int> head[N]; stack<long int> way; long int n; bool visited[N][N]; bool vis[N]; long long int d[N]…
#include<iostream> #include<vector> #include<algorithm> #include<stack> #define N 10010 using namespace std; vector<long int> head[N]; stack<long int> way; long int n; bool visited[N][N]; bool vis[N]; long long int d[N]…
没有全部写完,有几题以后再补吧. 第一题:最简单的:飞行员配对方案问题 讲讲这个题目为什么可以用网络流? 因为这个题目是要进行两两之间的匹配,这个就可以想到用二分图匹配,二分图匹配又可以用网络流写. 为什么二分图匹配可以用网络流写呢? 你在二分图上面加一个源点和一个汇点,然后你求从源点到汇点的最大流,这个是不是就是二分图的最大匹配. 第二题:最小路径覆盖问题 这个题目是一个特别明显的二分图问题,也用到了一个比较常见的方法拆点法, 这个再介绍一下拆点法这个网络流里面的基本套路该什么时候用, 如果你…
没做出来 第四题 (List)写一个函数reverseList,该函数能够接受一个List,然后把该List 倒序排列. 例如: List list = new ArrayList(); list.add(“Hello”); list.add(“World”); list.add(“Learn”); //此时list 为Hello World Learn reverseList(list); //调用reverseList 方法之后,list 为Learn World Hello package…
原文:经典算法题每日演练--第十四题 Prim算法 图论在数据结构中是非常有趣而复杂的,作为web码农的我,在实际开发中一直没有找到它的使用场景,不像树那样的频繁使用,不过还是准备 仔细的把图论全部过一遍. 一:最小生成树 图中有一个好玩的东西叫做生成树,就是用边来把所有的顶点联通起来,前提条件是最后形成的联通图中不能存在回路,所以就形成这样一个 推理:假设图中的顶点有n个,则生成树的边有n-1条,多一条会存在回路,少一路则不能把所有顶点联通起来,如果非要在图中加上权重,则生成树 中权重最小的叫…
题目描述 Description 小涵很喜欢电脑游戏,这些天他正在玩一个叫做<三国>的游戏.  在游戏中,小涵和计算机各执一方,组建各自的军队进行对战.游戏中共有 N 位武将(N为偶数且不小于 4),任意两个武将之间有一个“默契值”,表示若此两位武将作为一对组合作战时,该组合的威力有多大.游戏开始前,所有武将都是自由的(称为自由武将,一旦某个自由武将被选中作为某方军队的一员,那么他就不再是自由武将了),换句话说,所谓的自由武将不属于任何一方. 游戏开始,小涵和计算机要从自由武将中挑选武将组成自…
忘记密码了分值:20 来源: Justatest 难度:中 参与人数:7706人 Get Flag:2232人 答题人数:2386人 解题通过率:94% 找回密码 格式:SimCTF{ } 解题链接: http://ctf5.shiyanbar.com/10/upload/ 原题链接:http://www.shiyanbar.com/ctf/1808 [解题报告] 这是我入门Web开始写的第十四题,这道题要输入密码,我们先输入123试试,于是会出现如下对话框: 这个可能是个有用的信息,咱们先记下…
I.求逆元欧几里得方法 II.模拟细心+耐心 *本人感悟:自己的错误在于:对于这道模拟题没有耐心静下来一字一字看题,一行一行调错,一步一步调试,我要引以为戒. III.dpf[i][j][k]=max(f[i-1][j][k],min(f[i-1][t][k-1])+value[i][k])t=0,1,…,801 i为第i个曲子(长度为3)j为至今已进行j次的和弦改变(j<=c(c为允许和弦改变的最多次数))k为第k种和弦的方法value[i][k]为用对第i个曲子用第k个和弦的不和谐值 本人想…
第四题 两个整数做除法,有时会产生循环小数,其循环部分称为:循环节. 比如,11/13=6=>0.846153846153….. 其循环节为[846153] 共有6位. 下面的方法,可以求出循环节的长度. 请仔细阅读代码,并填写划线部分缺少的代码. public static int f(int n, int m) { n = n % m; Vector v = new Vector(); for(;;) { v.add(n); n *= 10; n = n % m; if(n==0) retu…
问题描述 为了增加公司收入,F公司新开设了物流业务.由于F公司在业界的良好口碑,物流业务一开通即受到了消费者的欢迎,物流业务马上遍及了城市的每条街道.然而,F公司现在只安排了小明一个人负责所有街道的服务. 任务虽然繁重,但是小明有足够的信心,他拿到了城市的地图,准备研究最好的方案.城市中有n个交叉路口,m条街道连接在这些交叉路口之间,每条街道的首尾都正好连接着一个交叉路口.除开街道的首尾端点,街道不会在其他位置与其他街道相交.每个交叉路口都至少连接着一条街道,有的交叉路口可能只连接着一条或两条街…
这一题没有显示提示语,仅仅有一幅图片,图片也看不出什么名堂,于是直接查看源代码,源代码例如以下: <html> <head> <title>follow the chain</title> <link rel="stylesheet" type="text/css" href="../style.css"> </head> <body> <!-- urlli…
题目描述 Description 给出如下定义: 1. 子矩阵:从一个矩阵当中选取某些行和某些列交叉位置所组成的新矩阵(保持行与列的相对顺序)被称为原矩阵的一个子矩阵. 例如,下面左图中选取第2.4行和第2.4.5列交叉位置的元素得到一个2*3的子矩阵如右图所示. 9   3   3   3   9 9   4   8   7   4 1   7   4   6   6 6   8   5   6   9 7   4   5   6   1 的其中一个2*3的子矩阵是4   7   48   6…
好久没有写博客了,今天再写一篇.还是先看题: 试题描述 阿明是一名推销员,他奉命到螺丝街推销他们公司的产品.螺丝街是一条死胡同,出口与入口是同一个,街道的一侧是围墙,另一侧是住户.螺丝街一共有 N 家住户,第 i 家住户到入口的距离为 Si 米.由于同一栋房子里可以有多家住户,所以可能有多家住户与入口的距离相等.阿明会从入口进入,依次向螺丝街的 X 家住户推销产品,然后再原路走出去.阿明每走 1 米就会积累 1 点疲劳值,向第 i 家住户推销产品会积累 Ai 点疲劳值.阿明是工作狂,他想知道,对…
CCF考试认证:题解参考博客http://blog.csdn.net/u014578266/article/details/45221841 问题描述 试题编号: - 试题名称: 图像旋转 时间限制: .0s 内存限制: .0MB 问题描述: 问题描述 旋转是图像处理的基本操作,在这个问题中,你需要将一个图像逆时针旋转90度. 计算机中的图像表示可以用一个矩阵来表示,为了旋转一个图像,只需要将对应的矩阵旋转即可. 输入格式 输入的第一行包含两个整数n, m,分别表示图像矩阵的行数和列数. 接下来…
Forms分值:10 来源: Ph0enix 难度:易 参与人数:4945人 Get Flag:2776人 答题人数:2824人 解题通过率:98% 似乎有人觉得PIN码是不可破解的,让我们证明他是错的. 格式:ctf{} 解题链接: http://ctf5.shiyanbar.com/10/main.php 原题链接:http://www.shiyanbar.com/ctf/1819 [解题报告] 这是我入门Web开始写的第四道题,这道题点开解题链接,然后我们可以在这个域名前加上view-so…
困在栅栏里的凯撒分值:10 来源: 北邮天枢战队 难度:易 参与人数:4531人 Get Flag:2124人 答题人数:2285人 解题通过率:93% 小白发现了一段很6的字符:NlEyQd{seft} 解题链接: 原题链接:http://www.shiyanbar.com/ctf/1867 [解题报告] 这是我入门密码学开始写的第四道题,这道题有点意思,题目标题为困在栅栏里的凯撒,说明肯定是要用到栅栏密码和凯撒密码,所以我们先对这段字符进行暴力破解,这时我们可以用到一个工具,叫CTFCrac…
刷题路线:https://github.com/youngyangyang04/leetcode-master 大家好,我是被算法题虐到泪流满面的老三,只能靠发发文章给自己打气! 这一节,我们来看看回溯算法. 回溯算法理论基础 什么是回溯 在二叉树的路径问题里,其实我们已经接触到了回溯这种算法. 例如我们在查找二叉树所有路径的时候,查找完一个路径之后,还需要回退,接着找下一个路径. 回溯其实可以说是我们熟悉的DFS,本质上是一种暴力穷举算法,把所有的可能都列举出来,所以回溯并不高效. 这个可能比…
1.前言 正式开始的第一周的任务--把NOIP2010至NOIP2015的所有D1/2的T2/3写出暴力.共22题. 暴力顾名思义,用简单粗暴的方式解题,不以正常的思路思考.能够较好的保证正确性,但是最大的问题在于效率.搞OI这么久,每次考试也经常纠结于暴力与正解之间,其实这两者概念上本来就没有明显的界限,是一组相对概念. 下面尽可能的不提到正解,但是如果正解容易到我都能够轻松秒的话就还是说一下了. 普通的DFS/BFS搜索是暴力,但暴力不局限于此.根据向总的话,记忆化搜索亦属于暴力,名字逼格这…
Median of Two Sorted Arrays There are two sorted arrays A and B of size m and n respectively. Find the median of the two sorted arrays. The overall run time complexity should be O(log (m+n)). time=378ms accepted <pre name="code" class="j…
题目 /* 分小组 9名运动员参加比赛,需要分3组进行预赛. 有哪些分组的方案呢? 我们标记运动员为 A,B,C,... I 下面的程序列出了所有的分组方法. 该程序的正常输出为: ABC DEF GHI ABC DEG FHI ABC DEH FGI ABC DEI FGH ABC DFG EHI ABC DFH EGI ABC DFI EGH ABC DGH EFI ABC DGI EFH ABC DHI EFG ABC EFG DHI ABC EFH DGI ABC EFI DGH ABC…
Swap Nodes in Pairs 问题简介:给定链表,交换每两个相邻节点并返回链表. 举例: 输入:1->2->3->4 输出:2->1->4->3 链表结构: 解法一: 定义一个头节点的引用,然后遍历链表,当下一个节点存在时,每两个节点的数值交换 复杂度分析: 时间复杂度:o(n)遍历一遍链表长度 空间复杂度:o(1)占用的空间为定值 小白刷题之路,请多指教— — 要么大器晚成,要么石沉大海…
Longest Common Prefix 问题简介: 编写一个函数来查找字符串数组中最长的公共前缀字符串,如果没有公共前缀,则返回空字符串"" 举例: 1: 输入: [“xwq”,“xwqe”,“xwqr”] 输出: “xwq” 2: 输入: [“zxc”,“asd”,“qwe”] 输出: “” 解法一: 先将字符串数组中索引为0即第一个字符串作为最长前缀,遍历所有字符串,用indexOf()方法比较,当前字符串不包含前缀时就将最长前缀长度减一,直到为0 解法二: 另一种思路是不直接…
class Solution { public: void reverseString(vector<char>& s) { int len=s.size(); char temp; ;i<len/;i++)//前面一半和后面一半交换即可 { temp=s[i]; s[i]=s[len--i]; s[len--i]=temp; } } }; 分析: 如上述,这个题没想太多.…
http://acm.fzu.edu.cn/contest/list.php?cid=152 主要是a题, lucas定理, 就这一版能过..  记录一下代码, 另外两个最短路  一个模拟,没什么记录价值. //#define txtout //#define debug #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #include<queue> #…
(8')奇怪的比赛 某电视台举办了低碳生活大奖赛.题目的计分规则相当奇怪: 每位选手需要回答10个问题(其编号为1到10),越后面越有难度.答对的,当前分数翻倍:答错了则扣掉与题号相同的分数(选手必须回答问题,不回答按错误处理). 每位选手都有一个起步的分数为10分. 某获胜选手最终得分刚好是100分,如果不让你看比赛过程,你能推断出他(她)哪个题目答对了,哪个题目答错了吗? 如果把答对的记为1,答错的记为0,则10个题目的回答情况可以用仅含有1和0的串来表示.例如:0010110011 就是可…
黄金连分数 黄金分割数0.61803... 是个无理数,这个常数十分重要,在许多工程问题中会出现.有时需要把这个数字求得很精确. 对于某些精密工程,常数的精度很重要.也许你听说过哈勃太空望远镜,它首次升空后就发现了一处人工加工错误,对那样一个庞然大物,其实只是镜面加工时有比头发丝还细许多倍的一处错误而已,却使它成了"近视眼"!! 言归正传,我们如何求得黄金分割数的尽可能精确的值呢?有许多方法. 比较简单的一种是用连分数: 1 黄金数 = --------------------- 1…
// 面试题64:求1+2+…+n // 题目:求1+2+…+n,要求不能使用乘除法.for.while.if.else.switch.case // 等关键字及条件判断语句(A?B:C). #include <iostream> // ====================方法一==================== //使用构造函数 class Temp { public: Temp() { ++N; Sum += N; } ; Sum = ; } static unsigned in…
StringInGrid函数会在一个指定大小的格子中打印指定的字符串. 要求字符串在水平.垂直两个方向上都居中. 如果字符串太长,就截断. 如果不能恰好居中,可以稍稍偏左或者偏上一点. 下面的程序实现这个逻辑,请填写划线部分缺少的代码. #include <stdio.h> #include <string.h> void StringInGrid(int width, int height, const char* s) { int i,k; char buf[1000]; st…
// 面试题:剪绳子 // 题目:给你一根长度为n绳子,请把绳子剪成m段(m.n都是整数,n>1并且m≥1). // 每段的绳子的长度记为k[0].k[1].…….k[m].k[0]*k[1]*…*k[m]可能的最大乘 // 积是多少?例如当绳子的长度是8时,我们把它剪成长度分别为2.3.3的三段,此 // 时得到最大的乘积18. #include <iostream> #include <cmath> // ====================动态规划=========…