摘要:
题目网址链接:https://vjudge.net/problem/387095/origin 题目大意:给出桌子数和桌子容纳人数,给出几条操作,操作如下:给出顾客人数,问是否有能容纳顾客且桌子标号和桌子容纳人数与顾客人数差值同时最小的桌子,有即输出桌子编号,没有输出-1;期间会有顾客离开,给出离开 阅读全文
摘要:
题目连接:http://poj.org/problem?id=1426 题意:找到一个只由0和1组成的数能把n整除;当初没读懂题,一直放了很久,最大位有20位,用无符号 __int64 正好20位; 思路:简单dfs,一个判断找到未找到开关k;因为由0 1组成,故dfs的方向为乘10和乘10加1; 阅读全文
摘要:
强连通的点(即两点之间有路径可以相互到达),这道迷宫城堡题便是计算有几个强连通分量。 先说Tarjan,他的主体部分便是: 原理如下:checklow用于储存low未改变之前的值,low值在递归时可能会被更新,timer代表点a的权值,x代表下一个点,visit[i]表示有没有被访问; 举个例子:有 阅读全文
摘要:
题目链接:http://poj.org/problem?id=3264 参考博客链接:https://blog.csdn.net/qq_31759205/article/details/75008659 理解:题意求给定区域内最值之差。数据太大,暴力是行不通的,首先想到的是线段树,但RMQ实行和理解 阅读全文
摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1754 直接上代码和解释吧 接下来是对访问的解释(不记下来怕自己忘了): /*假设现有1 2 3 4 5 6 7 8 9 10 11 12数组现在要访问2-4第一步递归:因为1-12不在2-4里面,所以分 阅读全文
摘要:
背包问题的思想很不错,个人学习后收获很多。它是将一个问题分解成若干个子问题,并以解决子问题达到解决原问题的一种解题思想。接下来我准备复习一下3个简单的背包问题,以便日后回忆起来能很快。 1:数塔问题 题目:HDU 2084. 解题思想:每下一层的最大值都能通过上一层的遍历得到,只要不断记录下一层就能 阅读全文
摘要:
c++代码: #include<bits/stdc++.h>using namespace std;#define fo(i,a,b) for(int i=a;i<=b;i++)bool visit[11];int a[10];void dfs(int index){ ios::sync_with_ 阅读全文