# include
# include
# include
using namespace std;
int main()
{
int n,i,j,k,count;
int flag1[1010],flag2[1010],a[1010],b[1010];
while(~scanf("%d",&n),n)
{
for(i=0;i<n;i++)
scanf("%d",&a[...
分类:
其他好文 时间:
2014-07-27 11:41:45
阅读次数:
190
链接:http://poj.org/problem?id=3420
题意:给一个4*N(1 ≤ N ≤ 1e9)的矩形空间,并且给不限块数的1*2的多米诺骨牌,问是由多少种方式能把这个矩形空间填满。
思路:看到这种问题果断想到状压,虽然是在看矩阵的时候看到的这道题。dp[i][j]表示在第i行状态为j的情况下的填满方式数,j的二进制表示中0表示对应位置上一行的骨牌是竖放,或者对应位置的骨牌是横...
分类:
其他好文 时间:
2014-07-27 11:40:15
阅读次数:
269
# include
# include
# include
using namespace std;
int main()
{
int i,n,s;
__int64 sum ;
int cost[10010],num[10010];
while(~scanf("%d%d",&n,&s))
{
for(i=0;i<n;i++)
scanf("%d%d",&cost[i],&...
分类:
其他好文 时间:
2014-07-27 11:34:02
阅读次数:
144
Tautology
Time Limit: 1000MS
Memory Limit: 65536K
Total Submissions: 9446
Accepted: 3596
Description
WFF 'N PROOF is a logic game played with dice. Each die has six...
分类:
其他好文 时间:
2014-07-27 11:32:12
阅读次数:
219
题目:http://poj.org/problem?id=2115
题意:对于C的for(i=A ; i!=B ;i +=C)循环语句,问在k位存储系统中循环几次才会结束。若在有限次内结束,则输出循环次数。否则输出死循环。
思路:这道题是一个扩展欧几里德算法的拓展,求单变元模线性方程 即:Cx=(B-A)(mod 2^k)
扩展欧几里得算法和单变元模线性方程(传送门) + 比较详细的博...
分类:
其他好文 时间:
2014-07-27 11:31:23
阅读次数:
199
和西安邀请赛D题类似的题目
这道题会爆栈,所以要非递归写,但是看了很久其实代码没理解,回头重写
#include
#include
#include
using namespace std;
const int SIZE = 100000+10;
int a,s;
int sta[SIZE*10],li[SIZE*10];
char ans[SIZE*10];
void s...
分类:
其他好文 时间:
2014-07-27 11:29:42
阅读次数:
160
奇怪的是,我的判定是不是联通的部分出问题了
先贴个对的:
#include
#include
#include
#include
#include
using namespace std;
const int SIZE = 100000+10;
const int SSIZE = 1000 +10;
const int tb = 26;
int idx(char x)
{...
分类:
其他好文 时间:
2014-07-27 11:29:22
阅读次数:
185
很水的一个BFS,不过还是有坑点的,就是数都是大于1000的,我在千位时取过零,想了很久
不够细心啊!!!
AC代码如下:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
typedef __int64 LL;
#define maxn 0x7f...
分类:
其他好文 时间:
2014-07-27 11:28:12
阅读次数:
203
Cow Sorting
Time Limit: 2000MS
Memory Limit: 65536K
Total Submissions: 5946
Accepted: 2263
Description
Farmer John's N (1 ≤ N ≤ 10,000) cows are lined up to be milk...
分类:
其他好文 时间:
2014-07-27 11:19:42
阅读次数:
354
状态压缩DP
dp[i][j]表示在i状态(用二进制表示城市有没有经过)时最后到达j城市的最小时间
转移方程dp[i][j]=min(dp[i][k]+d[k][j],dp[i][j])
d[k][j]是k城市到j城市的最短距离 要先用flody处理
#include
using namespace std;
int d[20][20],dp[1<<11][20];
int n,m;...
分类:
其他好文 时间:
2014-07-27 11:17:42
阅读次数:
176