Facebook Hacker Cup 2015 Round 1--Winning at Sports(动态规划)
题意:你和一个朋友玩足球游戏,分数从0-0開始,终于你总是赢。而且你主要有两种方式赢,第一种stressFree方式你肯定要进第一个球而且总是比你的朋友分数高,另外一种stressFull方式除了你的朋友达到终于分数时。在游戏中你不可能比你的朋友分数高。
给出一个比分。请分别输出在两种情况下你能赢的方式。
题解:相似于LCS。由于球仅仅能一个一个地进,所以给出终于比分,如果a:b,上一个比分仅仅可能是a-1:b,或者a:b-1。
非常easy写出在stressFree时的动态方程。
1. 设dp_free[i][j]为比分为i:j的全部方式数目。显然i > j。
2. 若i = j+1,则dp_free[i][j] = dp_free[i][j-1];若i > j+1,则dp_free[i][j] = dp_free[i][j-1]+dp_free[i-1][j]。
相同如果stressFull方式下的最后比分为a:b,则比分肯定是由b:b再全部由你进球所造成的。
1. 设dp_full[i]为你的分数始终不超过你朋友终于分数为i:j的全部方式数目,显然i <= j。
2. 若i = j,则dp_full[i][j] = dp_full[i-1][j]。若i < j。则dp_full[i][j] = dp_full[i-1][j]+dp_full[i][j-1]。
代码例如以下:
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
#define maxN 2005
#define maxP 1000000007
int dp_free[maxN][maxN];
int dp_full[maxN][maxN];
int DP()
{
memset(dp_free,0,sizeof(dp_free));
memset(dp_full,0,sizeof(dp_full));
dp_free[1][0] = 1;
dp_full[0][0] = 1;
for(int i = 0;i < maxN;i++)
{
for(int j = 0;j < maxN;j++)
{
if(i > j)
{
if(j >= 1)
{
dp_free[i][j] = dp_free[i][j-1];
}
if(i >= 1&&i-1 > j)
{
dp_free[i][j] = (dp_free[i][j]+dp_free[i-1][j])%maxP;
}
}
else
{
if(i >= 1)
{
dp_full[i][j] = dp_full[i-1][j];
}
if(j >= 1&&i <= j-1)
{
dp_full[i][j] = (dp_full[i][j]+dp_full[i][j-1])%maxP;
}
}
}
}
return 0;
}
int main()
{
freopen("winning_at_sports.txt","r",stdin);
freopen("out1.txt","w",stdout);
int T;
int a,b;
char c;
DP();
scanf("%d",&T);
for(int i = 1;i <= T;i++)
{
scanf("%d%c%d",&a,&c,&b);
printf("Case #%d: %d %d\n",i,dp_free[a][b],dp_full[b][b]);
}
return 0;
}
Facebook Hacker Cup 2015 Round 1--Winning at Sports(动态规划)的更多相关文章
- Facebook Hacker Cup 2015 Round 1--Corporate Gifting(树动态规划)
原标题:https://www.facebook.com/hackercup/problems.php?pid=759650454070547&round=344496159068801 题意 ...
- Facebook Hacker Cup 2015 Round 1--Homework(筛选法求素数)
题意:给定A,B,K(A<=B)三个数,问在[A,B]范围内的数素数因子个数为K的个数. 题解:典型的筛选法求素数.首先建立一个保存素数因子个数的数组factorNum[],以及到n为止含有素数 ...
- Facebook Hacker Cup 2014 Qualification Round 竞赛试题 Square Detector 解题报告
Facebook Hacker Cup 2014 Qualification Round比赛Square Detector题的解题报告.单击这里打开题目链接(国内访问需要那个,你懂的). 原题如下: ...
- 51Nod 1182 完美字符串(字符串处理 贪心 Facebook Hacker Cup选拔)
1182 完美字符串 题目来源: Facebook Hacker Cup选拔 基准时间限制:1 秒 空间限制:1 ...
- Codeforces Round VK Cup 2015 - Round 1 (unofficial online mirror, Div. 1 only)E. The Art of Dealing with ATM 暴力出奇迹!
VK Cup 2015 - Round 1 (unofficial online mirror, Div. 1 only)E. The Art of Dealing with ATM Time Lim ...
- Facebook Hacker Cup 2014 Qualification Round
2014 Qualification Round Solutions 2013年11月25日下午 1:34 ...最简单的一题又有bug...自以为是真是很厉害! 1. Square Detector ...
- VK Cup 2015 - Round 2 (unofficial online mirror, Div. 1 only) E. Correcting Mistakes 水题
E. Correcting Mistakes Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/problemset ...
- VK Cup 2015 - Round 1 -E. Rooks and Rectangles 线段树最值+扫描线
题意: n * m的棋盘, k个位置有"rook"(车),q次询问,问是否询问的方块内是否每一行都有一个车或者每一列都有一个车? 满足一个即可 先考虑第一种情况, 第二种类似,sw ...
- VK Cup 2015 - Round 2 (unofficial online mirror, Div. 1 only) B. Work Group 树形dp
题目链接: http://codeforces.com/problemset/problem/533/B B. Work Group time limit per test2 secondsmemor ...
随机推荐
- SICP 习题 (1.39)解题总结
SICP 习题1.39沿着习题1.37, 1.38的方向继续前行,要求我们依据德国数学家J.H.Lambert的公式定义tan-cf过程,用于计算正切函数的近似值. J.H.Lambert的公式例如以 ...
- 数据结构基础(3)---C语言实现单链表
#include<stdio.h> #include<malloc.h> #include<stdbool.h> /** **链表节点的定义 */ typedef ...
- c++操作当前窗体句柄
句柄 这一概念是MFC里的一个类.MFC有专门的函数来获取窗体句柄. HWND hwnd; hwnd=CreateWindow("my own windowshandle",&qu ...
- 源代码编译安装CloudStack 4.2
基于CentOS 6.4安装CloudStack 环境配置 # yum -y update # yum -y upgrade 安装NTP,jdk 1.7, tomcat 6, mysql,git等服务 ...
- jquary依据td中button的元素属性删除tr行(删选出想删除的行)
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcnVveXVhbnlp/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA ...
- 实际感受美丽的Linux(多组视频)
1.Fedora 上使用google earth 2.体验桌面-GNOME 2.2.9 3.体验桌面-KDE4.4 永中Office使用演示(和MS Office 2003很相似哦) 4.在Fedor ...
- golang sync.Mutex
//go func 和主线程之间的关系是并行和竞争关系 package main import ( "fmt" "sync" "time" ...
- CentOS7下简单安装python3.7.0步骤
一.安装编译工具 #yum -y install gcc #yum -y groupinstall "Development tools" #yum -y install zlib ...
- Maven学习总结(14)——Maven 多模块项目如何分工?
一.开场白 使用Maven有段时间了,只能感慨真是个好东西,让我从传统模式体会到了严谨.规范.敏捷.方便的特性. 如果你懂Maven或许看过Juven翻译的<Maven权威指南>: 发个牢 ...
- 洛谷——P1101 单词方阵
https://www.luogu.org/problem/show?pid=1101#sub 题目描述 给一nXn的字母方阵,内可能蕴含多个“yizhong”单词.单词在方阵中是沿着同一方向连续摆放 ...