USACO 3.3解题思路报告
来源:互联网 发布:vb中对象的属性 编辑:程序博客网 时间:2024/05/20 11:52
Riding the Fences
给出一张无向图,求它的欧拉通路,按字典序输出经过的每个点。
求出每个点的入度,用邻接矩阵存图,每读入一条连接u,v的边,mp[u][v]++,mp[v][u]++。
将找到的第一个入读为奇数的点作为起点,若没有入读为奇数的点,则将第一个入度不为零的点作为起点,进行深度优先搜索。每走一条边就给这条边的两个方向都-1,每当无路可走时,就将盖点加入答案的数组中,最后倒序输出答案。
Shopping Offers
给出b种(不超过5种)商品的单价和需求量(不超过5件),并给出一些同时购买某些物品的优惠方案,求出最少的花费。
f[a][b][c][d][e]表示购买a个商品1,b个商品2……的最少花费,将f[a][b][c][d][e]初始化为不使用任何优惠方案的花费,对每一种优惠方案进行dp即可。
Camelot
给出一个R*C的棋盘,给出若干个骑士的位置和国王的位置,国王每次可以走到与他相邻的8个格子中的任意一个,而骑士的走法则与国际象棋中的马一样。特殊的规则是,如果国王遇到骑士,他们可以一起行动,按照骑士的走法移动,步数也只算骑士的步数。
求一个点,使所有骑士和国王集结到此的步数和最小,求最小步数和。
首先计算国王到各个点的距离,即为切里雪夫距离。然后对每个骑士所在点做一次SPFA,求出按骑士的行动规则到各个点的最小步数。同时,求出每个骑士接王到每个点的代价,算出王到各个点的最小花费。计算每个点骑士花费与王的花费的和,和的最小值即为答案。
Home on the Range
给出一张正方形的图,由0和1构成,1表示有障碍物,求图中各种边长的正方形的个数。
f[i][j]表示以点(i,j)为右下角的正方形的最大边长,则f[i][j]=min(f[i-1][j],f[i][j-1],f[i-1][j-1])+1;
然后,边长为2~f[i][j]的正方形数目均+1即可。
A Game
给出一串数,两个玩家进行游戏,每次每个玩家从序列的任意一端取一个数,两位玩家的最终得分为各自取走的数字之和。假如两人都采取最优策略,分别求出二人的最终得分。
f[i][j]表示区间i~j内先手能取到的最大分数,转移方程: f[i][j]=sum[j]-sum[i-1]-min(f[i+1][j],f[i][j-1])
以区间长度为最外层进行循环。
- USACO 3.3解题思路报告
- USACO 3.1解题思路报告
- USACO 3.2解题思路报告
- USACO:Overfencing解题报告
- usaco Transformations 解题报告
- USACO Stringsobits 解题报告
- USACO Camelot 解题报告
- USACO Cowcycles 解题报告
- USACO Wormholes 解题报告
- USACO Telecowmunication 解题报告
- USACO Picture 解题报告
- USACO Twofive 解题报告
- USACO 3.4解题报告
- USACO 4.1解题报告
- USACO 4.2解题报告
- USACO 4.3解题报告
- USACO 4.4解题报告
- USACO 5.3解题报告
- C语言学习笔记
- 从零到日志采集索引可视化、监控报警、rpc trace跟踪-系统上下线监控
- JavaScript模拟手势翻页动作
- PX EM REM之间的区别
- python2.7中用numpy.reshape 对图像进行切割
- USACO 3.3解题思路报告
- CodeForces-149D Coloring Brackets(区间dp)
- hibernate正向生成简单教程
- 数据库表间关系
- linux驱动由浅入深系列:驱动程序的基本结构概览之一(第一个驱动程序)
- springmvc 用拦截器+token防止重复提交
- 诺博源PHP前端学习第一天
- 跟我学STM32107RC--- STM32中的按键输入实验总结
- Webview的各种坑