dp[ba][ta][bb][tb]表示a堆牌从下面拿了ba张,从上面拿了ta张.b堆牌从下面拿了bb张,从上面拿了tb张.当前玩家能得到的最大的分数. 扩展方式有4种,ba+1,ta+1,bb+1,tb+1,用当前剩下牌的总分减掉它,取最大值,就是当前玩家的最高分. 记忆化搜索 #include<iostream> #include<cstdio> #include<cmath> #include<algorithm> #include<cstrin…
题意:给定n个点和m条边,问你拆掉前i条边后,整个图的连同城市的数量. i从1到m. 思路:计算连通的城市,很容易想到并查集,但是题目里是拆边,所以我们可以反向去做. 存下拆边的信息,从后往前建边. #include <iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; struct node { int a,b; }Q[100005];…
计算12个数的和的平均数.四舍五入,不能有后导0. 我的做法是,将答案算出后,乘以1000,然后看个位是否大于等于5,判断是否要进位…… #include<iostream> #include<cstdio> #include<string.h> #include<cmath> #include<algorithm> using namespace std; #define eps 1e-2 int main() { int cas; scanf…
Play Game Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)Total Submission(s): 24    Accepted Submission(s): 18 Problem Description Alice and Bob are playing a game. There are two piles of cards. There are N cards i…
题意 给出2*n个数,分两列放置,每列n个,现在alice和bob两个人依次从任意一列的对头或队尾哪一个数,alice先拿,且两个人都想拿最多,问alice最后能拿到数字总和的最大值是多少. 思路 4月份通化邀请赛的题,当时竟然做不出来真是--记忆化搜索就OK了-- dp[a][b]{c}[d]=sum-min(dp[a+1][b]{c}[d],dp[a][b-1]{c}[d],dp[a][b]{c+1}[d],dp[a][b]{c}[d-1]); 其中dp[a][b]{c}[d]表示此状态下的…
A Walk Through the Forest Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 4383    Accepted Submission(s): 1573 Problem Description Jimmy experiences a lot of stress at work these days, especiall…
Pieces Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 1811    Accepted Submission(s): 932 Problem Description You heart broke into pieces.My string broke into pieces.But you will recover one…
(我是不会告诉你我是抄的http://www.cnblogs.com/scau20110726/archive/2013/02/27/2936050.html这个人的) 一开始没有想到要化一下方差的式子 怎么搞都挂-- 尴尬 /* 题目固定是8*8,本来想用点的坐标来表示矩形的,但是发现用标号来表示会方便一点 对于最小的小方格,用(i,j)表示,即第i行第j列的小方格,注意不是点的坐标 所以对于一个矩形,我们用它左上角的小方格和右下角的小方格来表示 例如,整个棋盘就是(1,1),(8,8) 另外…
1.直接用递归函数计算状态转移方程,效率十分低下,可以考虑用递推方法,其实就是“正着推导,逆着计算” #include<iostream> #include<algorithm> using namespace std; #define maxn 1000+5 int n; int a[maxn][maxn]; int d[maxn][maxn]; int main(){ for(;cin>>n && n;){ memset(d,,sizeof(d));…
3895: 取石子 Time Limit: 1 Sec  Memory Limit: 512 MBSubmit: 263  Solved: 127[Submit][Status][Discuss] Description Alice和Bob两个好朋含友又开始玩取石子了.游戏开始时,有N堆石子 排成一排,然后他们轮流操作(Alice先手),每次操作时从下面的规则中任选一个: ·从某堆石子中取走一个 ·合并任意两堆石子 不能操作的人输.Alice想知道,她是否能有必胜策略. Input 第一行输入T…