uva 11825 Hackers' Crackdown(状态压缩DP)
题目大意:
有n台计算机,每台计算机运行n个不同进程,现在你可以每台机器上停止一个服务,而且你停止了1台机器上的这个服务的同时,其相连机器上的这个服务也会停止,再告诉 你每台机器相连的机器,当一个所有机器上的这个服务都停止了,那么这个服务才算没有被运行,问你最多多少个服务没有 被运行?
解题思路:
其实就是把这些机器分成最多的子集合集合,每个子集合合并起来能够影响全部,这样就能解决问题。这样枚举的状态就是2^16次方。...
分类:
其他好文 时间:
2014-06-20 12:10:53
阅读次数:
374
非常巧妙的题目,巧用cmp,注意cmp的重载
#include
#include
using namespace std;
string a[55];
bool cmp(string a, string b){
return a+b > b+a;
}
int main(int argc, char const *argv[])
{
int n;
while(cin >...
分类:
其他好文 时间:
2014-06-11 06:10:28
阅读次数:
293
Two players, S and T, are playing a game where they make alternate moves. S plays
first.
In this game, they start with an integer N. In each move, a player removes one digit from the integer and p...
分类:
其他好文 时间:
2014-06-10 06:31:29
阅读次数:
302
题目:国际象棋,判断当前状态,哪一方被将军了。不会有同时被将军的情况。
分析:模拟。直接按照国际象棋的规则模拟即可。
把操作分成两种,单点判断和射线判断,写成函数减少公共代码,也降低错误率;
然后:兵、马、王(不用判断)都是单点判断,后、车、象都是射线判断。
每种情况,调用不同的方向向量即可。
说明:没有同时成立的情...
分类:
其他好文 时间:
2014-06-08 17:14:06
阅读次数:
265
uva 101 The Blocks Problem (基本算法-模拟)
题目大意:
问题就是分析一系列的命令,告诉机械臂如何操纵放在一个平台上的积木。最初平台上有n个积木(编号由0到n - 1),对于任意的0 ≤ i < n - 1,积木bi都与bi + 1相临
机械臂操作积木的有效指令列举如下:
(1)move a onto b
a和b都是积木的编号,先将a和b上面所有的积木都放回原处,再将a放在b上。
(2)move a over b
a和b都是积木的编号,先将a上面所有的积木放回原处,再将a放在b上...
分类:
其他好文 时间:
2014-06-08 15:49:01
阅读次数:
220
这个题之前做过,方法太笨还不对,今天再做突然想到一个巧妙做法,网上应该也有别人用此方法的,因为并不是很难,但我没有看别人的,是自己想出来的哈哈哈
首先要对输入的数组进行排序,这是毋庸置疑的。
因为要计算绝对值的和,所以就想到了数轴上的距离的概念。要使|X1-A|+|X2-A|最小,也就是要找一个点A,使其到X1,X2距离和最短,所以很容易想到在数轴上只要A在X1和X2之间就行。...
分类:
其他好文 时间:
2014-06-08 15:20:36
阅读次数:
202
Rotating Sentences
In ``Rotating Sentences,'' you are asked to rotate a series of input sentences 90 degrees clockwise. So instead of displaying the input sentences from left to right and top to b...
分类:
其他好文 时间:
2014-06-08 04:51:34
阅读次数:
236
题目大意:
三个操作。
1. 合并两个集合
2.把第一个元素放到第二个集合里
3.输出集合的数量和和。。
思路分析:
要用p记录这个元素所在集合编号,然后用编号建立并查集。
#include
#include
#include
#include
using namespace std;
typedef long long LL;
int set[111111...
分类:
其他好文 时间:
2014-06-07 12:52:40
阅读次数:
267
UVA 10844 - Bloques
题目链接
题意:给定n个数字,问这n个数字能分成子集分成有几种分法
思路:一开始先想了个状态,dp[i][j]表示放i个数字,分成j个集合的方案,那么转移为,从dp[i - 1][j - 1]在多一个集合,和从dp[i - 1][j]有j个位置放,那么转移方程为dp[i][j] = dp[i - 1][j - 1] + dp[i - 1][j]...
分类:
其他好文 时间:
2014-06-02 05:29:09
阅读次数:
254
TOJ 614173971
HDU 宇智波佐助
POJ shiai
ZOJ henyumen
UVa henyumen
Light OJ HENYUMEN...
分类:
其他好文 时间:
2014-06-01 13:59:09
阅读次数:
210