腾迅马拉松(〇)解题报告

2024-05-03 19:32
文章标签 报告 马拉松 解题 腾迅

本文主要是介绍腾迅马拉松(〇)解题报告,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

                                     腾迅马拉松解体报告

 

    腾迅的第一场比赛主要是以DP为主。所以,你会看到是各种的DP的出现。虽然,题目不是很难,但是坑特多,一不注意,就会让你wrong的满屏都是。所以,要特别的细心的读题。

 

                                            威威猫系列故事——篮球梦

 

题目链接:Click Here~

 

题目分析:

    这道题目还是一道DP,但是,这是一个考查你对DP思想的理解。即,你要懂得动态规划的本质是什么。

思路分析:

    这道题可以从动态规划的本质出发解决问题。即,每一个状态都可以从前面的状态推出。这题也是运用了这个思想。因此,可以推出转移方程式,但是这个状态有三个,因为以前的最优子结构是选或者不选,而这道题是肯定会选,但是有三种情况可以选,而每种情况又有着不同的结果。所以,下面就给出总的动态转移方程式:

1、dp[i][j] += dp[i-1][j-1];(j > 1)

2、dp[i][j] += dp[i-1][j-2];(j > 2)

3、dp[i][j] += dp[i-1][j-3];(j > 3)

这三个方程式要怎么理解呢?

  我们还是要从算法的本质出发。即,我刚才一直强调的动态规划的本质,可以从上一个状态转移到下一个状态。但是,本题不需要动态规划的另一个本质,即,最优子结构。

  还是说回本题。即,我们考虑当前的这场比赛,他是处于何种状态呢?显然他是有上一场结果传递下来的。所以,我们就可以假设,当前的状态dp[i][j] = dp[i-1][j-1]表示该次进攻得一分,而继承上次的情况。一下两个方程都是一样的意义。就不再解释了。

 

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
using namespace std;typedef __int64 LL;
const int N = 80;
const int M = 25;
__int64 dp[M][N];
void Init()
{dp[1][1]=dp[1][2]=dp[1][3]=1;for(int i = 2;i < M;++i)for(int j = 1;j <= 3*i;++j){if(j > 1)dp[i][j] = dp[i-1][j-1];if(j > 2)dp[i][j] += dp[i-1][j-2];if(j > 3)dp[i][j] += dp[i-1][j-3];}
}
int main()
{Init();int a,b,t;while(~scanf("%d%d%d",&a,&b,&t)){int n = t/15; //总场数b += n/2;     //B的最后终分数n = n - n/2;   //A的剩余场数a = b - a;      //A必需要得到的最小分数if(!n){if(a >= 0){printf("0\n");}else{printf("1\n");  //什么都无需做就可以赢}}else{LL res = 0;if(a > 0)a++;       //必需要至少赢一场,不能平手if(a < 0) a = 0;    //肯定会赢得情况for(int i = a;i <= 3*n;++i)res += dp[n][i];printf("%I64d\n",res);}}return 0;
}


 

  

 

这篇关于腾迅马拉松(〇)解题报告的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/957470

相关文章

芯片后端之 PT 使用 report_timing 产生报告如何阅读

今天,就PT常用的命令,做一个介绍,希望对大家以后的工作,起到帮助作用。 在PrimeTime中,使用report_timing -delay max命令生成此报告。switch -delay max表示定时报告用于设置(这是默认值)。 首先,我们整体看一下通过report_timing 运行之后,报告产生的整体样式。 pt_shell> report_timing -from start_

android反馈Crash报告

此文章转载他人,担有所改动,,在全局获取异常有所改动 为什么需要反馈Crash报告?   做Android应用程序,要尽量避免程序Crash的发生。虽然说零Crash是程序员追逐的最终目标,但是现实的情况是,程序员只能尽量的减少Crash的发生,而几乎不可能完全杜绝Crash。也许,你认为你的应用的健壮性已经近乎完美,轻松的经受住了测试部门魔鬼般的考验,但是当你的应用发布到市

用R Markdown 生成数据分析报告

为了创建 R Markdown报告,打开text文件,并将它保存为.Rmd 文件。File > New File > Text File 确保保存成 .Rmd文件, RStudio IDE能够很大程度上帮助你完成整个任务.,你可以保存通过File > Save。修改扩展名。 R Markdown 报告由一下3部分组成: text文本 knitr 处理 R code YAML的

杭电ACM hdu 2110 Crisis of HDU 解题报告(母函数)

Problem Description 话说上回讲到HDU大战东洋小苟,结果自然是中方大胜,这一战也使得海东集团在全球同行业中的地位更加巩固。随着集团的发展,很多创业时期的元老逐步功成身退,先是8600移民海外,然后是linle夫妇退隐山林,逐渐的,最初众多的元老只剩下XHD夫妇和Wiskey三人了。 到了2020年,因为扩张过度加上老鼠数量逐年减少,公司的发展遇到了前所未有的危机,此时集团已经

杭电ACM hdu 2082 找单词 解题报告(母函数)

Problem Description 假设有x1个字母A, x2个字母B,..... x26个字母Z,同时假设字母A的价值为1,字母B的价值为2,..... 字母Z的价值为26。那么,对于给定的字母,可以找到多少价值<=50的单词呢?单词的价值就是组成一个单词的所有字母的价值之和,比如,单词ACM的价值是1+3+14=18,单词HDU的价值是8+4+21=33。(组成的单词与排列顺序无关,比如

杭电ACM hdu 2079 选课时间 解题报告(母函数)

Problem Description 又到了选课的时间了,xhd看着选课表发呆,为了想让下一学期好过点,他想知道学n个学分共有多少组合。你来帮帮他吧。(xhd认为一样学分的课没区别)   Input 输入数据的第一行是一个数据T,表示有T组数据。 每组数据的第一行是两个整数n(1 <= n <= 40),k(1 <= k <= 8)。 接着有k行,每行有两个整数a(1 <= a <= 8),b

【洛谷P3366】【模板】最小生成树 解题报告

洛谷P3366 -【模板】最小生成树 题目描述 如题,给出一个无向图,求出最小生成树,如果该图不连通,则输出 orz。 输入格式 第一行包含两个整数 N , M N,M N,M,表示该图共有 N N N 个结点和 M M M 条无向边。 接下来 M M M 行每行包含三个整数 X i , Y i , Z i X_i,Y_i,Z_i Xi​,Yi​,Zi​,表示有一条长度为 Z

ICPC2018 徐州区域赛 比赛报告

ICPC2018 徐州区域赛 比赛报告 Sunder-杜逸闲 关于本比赛 本场比赛于2018.10.28在徐州由中国矿业大学承办,本人所在队伍Sunder – 由杜逸闲,裘家浩,周浩博组成的队伍 – 拿到了14/289金牌。 比赛过程 开场杜逸闲从后往前看,裘家浩从中间开始看,周浩博从前往后看题。 过了20分钟才有人过A题,杜逸闲开始读A题冗长的题面,发现A题是较简单题。 通过A之后有人

docker之SonarQube导出PDF报告

目录 一、拉取镜像二、下载插件三、安装插件四、配置PDF导出插件五、创建测试项目并运行六、导出PDF报告 一、拉取镜像 请使用 docker pull sonarqube:8.7.1-community 拉取镜像,高版本目前找不到支持 PDF导出的插件: docker pull sonarqube:8.7.1-community 二、下载插件 下载 sonar-pdf

2022年大作业参考报告-使用C++语言开发小学生成绩管理系统、中学生成绩管理系统、大学生成绩管理系统【240621更新】

背景: 目录 第一章 需求分析    2 1.1    问题描述    2 6.1    功能需求    2 6.2    开发环境    2 6.3    开发过程    2 第二章 概要设计    3 2.1    总体设计    3 2.2    类的定义    3 2.3    接口设计    5 2.4    运行界面设计    6 第三章 详细设计    7 3.1    输入模块