Chess
Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others)
Submit Statistic Next
Problem
Problem Description
Xiang-qi is a kind of traditional Chinese chess. ...
分类:
其他好文 时间:
2015-04-16 19:59:15
阅读次数:
140
给出一个16个点所构成的图形,分别由0,1组成,每次操作可以任选其中相连的两个点(必须一个为0,一个为1),进行0,1,交换
问3步内是否可以把图形变成:0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1状态
若不行,输出more
状压存储图形状态。ida*搜索 或者 BFS都行
IDA*搜索
#include "stdio.h"
#include "str...
分类:
其他好文 时间:
2015-04-16 17:43:58
阅读次数:
130
题目大意:给定一张无向图,求这张无向图的生成子图中有多少强连通图
正着做不好做,我们考虑容斥原理
如果一个图不连通,那么这张图缩点之后一定会形成一个点数>=2的DAG
一个DAG中一定会有一些入度为0的点,我们枚举这些点的点集进行容斥
具体DP方程和细节见代码 注释写的还是比较详细的我就不多说了= =
#include
#include
#include
#include
#de...
分类:
其他好文 时间:
2015-04-15 14:51:26
阅读次数:
402
// hdu 3001 TSP问题的变形
// 这次到每个点最多两次,所以可以用三进制的类推
// dp[S][u]表示当前在u点访问状态为S时所得到的最小的开销
// 采用刷表法,即用当前的状态推出它所能转移的状态
// dp[S][u] 可以到达的状态为dp[S+state[v]][v](dist[u][v]!=inf)
// dp[S+state[v]][v] = max(dp[S+stat...
分类:
其他好文 时间:
2015-04-15 01:03:10
阅读次数:
148
首先预处理出来前K个点互相之间的最短路,直接Dijkstra就好了然后就变成了状压DP。。。随便写一下好了 1 /************************************************************** 2 Problem: 1097 3 U...
分类:
其他好文 时间:
2015-04-15 00:44:14
阅读次数:
121
// poj3254 状压dp入门
// dp[i][S]表示前i行第i行状态为S时放牧的情况
// S为十进制的二进制数形式如5为101表示第一列和第三列放牧的方法数
// 首先dp[0][S]合法的话就是1
// 状态转移方程为dp[i][S] = sigma(dp[i-1][V])(S与V是合法状态)
// 最后的结果就是dp[n][S](S为所有的合法状态)
//
// 刚开始十分傻x的...
分类:
其他好文 时间:
2015-04-14 21:41:16
阅读次数:
131
Frank is a portfolio manager of a closed-end fund for Advanced Commercial Markets (ACM ). Fund collects money (cash) from individual investors for a certain period of time and invests cash into variou...
分类:
其他好文 时间:
2015-04-13 23:05:36
阅读次数:
363
题意:问你A-B之间 问你选两个数字 使得 这两个数字 相同 数字 个数最多 的 相同数字个数。解题思路:枚举A-B之间所有的数,把数分解成10进制hash状态压缩,然后再把所有压缩后的值 N^2枚举找出最大值。解题代码: 1 // BEGIN CUT HERE 2 /* 3 4 */ ...
分类:
其他好文 时间:
2015-04-13 18:49:54
阅读次数:
141
简单状压DP,忘 了初始化,忘 了&和==的优先级,坑了我十几个WA。#include #include #include #include using namespace std;int dp[110][222][222];int row[110];int status[1>=1; } retur...
分类:
其他好文 时间:
2015-04-12 13:12:15
阅读次数:
134
// poj 1185 炮兵阵地 状压dp
// 这题和之前做的棋子的差不多,只是这个比之前的变化了一个条
// 件,这个条件让的我们不得不考虑在这个状态之前的状态,即在
// 一个状态中记录另外一个状态,说的可能有些绕
// 这么说吧: dp[i][S][V]表示第i行状态为S(仍然是二进制的数字
// 表现形式,比如5是101,表示第一列和第三列放炮兵),第i-1行
// 的状态为V(同样是二...
分类:
其他好文 时间:
2015-04-10 20:13:21
阅读次数:
113