TOJ4587:抓苹果(DP)】的更多相关文章

传送门:抓苹果 dp(i,j) = max(dp(i-1,j-1),dp(i-1,j))+当i这分钟时能否刚好移动到这棵树下. 初始化是对不移动的情况下. 代码 #include<bits/stdc++.h> using namespace std; #define LL long long #define INF 2000000000 #define eps 1e-8 #define pi 3.141592653589793 ][];//第i分钟移动j次得到的最多苹果 int main()…
dp dp( x , k ) = max( dp( x - 1 , k - 1 ) + *** , dp( x - 1 , k ) + *** ) *** = 0 or 1 ,根据情况 (BZOJ 1750双倍经验) ------------------------------------------------------------------------ #include<cstdio> #include<cstring> #include<algorithm>…
题意: 给一个长为L的环,起点在12点钟位置,其他位置上有一些苹果,每次带着一个能装k个苹果的篮子从起点出发去摘苹果,要将全部苹果运到起点需要走多少米? 思路: 无论哪处地方,只要苹果数超过k个,那么必须一次专程来运走!所以一开始可以先将他们mod k,去掉的部分先计算出来. 那么剩下的局面再来用贪心来做.苹果树上的苹果拆成单个来看待,最多也才10w个,那么只要保存每个苹果到起点的距离即可.接下来考虑两种情况: (1)不饶整个圈,只走半圈:用贪心来做,类似于背包那样,dist[i-k]+pos[…
题目链接 :http://bak3.vjudge.net/contest/136499#problem/D 题意: //转移方程dp[i][j]=max(dp[i-1][j],dp[i-1][j-1]) //表示前i秒移动j步能接到的最多苹果数. #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<cmath> using names…
题目大概是一棵树,每个结点都有若干个苹果,求从结点1出发最多走k步最多能得到多少个苹果. 考虑到结点可以重复走,容易想到这么个状态: dp[u][k][0]表示在以结点u为根的子树中走k步且必须返回u能得到的最多苹果 dp[u][k][1]表示在以结点u为根的子树中走k步且可以不返回u能得到的最多苹果 单纯这样转移又是指数级的时间复杂度,所以又是树上背包了 转移就是: dp[u][k][0]=max(dp[u][k][0],dp[v][k'][0]+dp[u][k-k'-2][0])(v是u当前…
题目背景 USACO 题目描述 很少有人知道奶牛爱吃苹果.农夫约翰的农场上有两棵苹果树(编号为1和2), 每一棵树上都长满了苹果.奶牛贝茜无法摘下树上的苹果,所以她只能等待苹果 从树上落下.但是,由于苹果掉到地上会摔烂,贝茜必须在半空中接住苹果(没有人爱吃摔烂的苹果).贝茜吃东西很快,她接到苹果后仅用几秒钟就能吃完.每一分钟,两棵苹果树其中的一棵会掉落一个苹果.贝茜已经过了足够的训练, 只要站在树下就一定能接住这棵树上掉落的苹果.同时,贝茜能够在两棵树之间 快速移动(移动时间远少于1分钟),因此…
题目 :X个相同的苹果放入Y个篮子,(1)篮子可以为空 ,篮子不同. 放法有C(X+Y-1,Y-1 );// (2)篮子不可以为空,篮子不同.放法有C(X-1,Y-1) //插挡板法 分析有了这个组合公式,参考我的 求组合数程序即可解决问题.(3)篮子可以为空,篮子相同.按上面程序求解 递推公式dp[i][j]=dp[j-i][i]+dp[j][i-1] #if 0 /* m个相同的苹果放入n个相同的篮子,篮子可以为空. 下面两种方法求解,动态规划和递归.但都须知: dp[0][j]=0;含义为…
  题目传送门 http://poj.org/problem?id=1664 设$dp[i][j]$表示$i$个苹果放在$j$个盘子里的总数 $1.$ 当 苹果数 小于 盘子数 $(M < N)$的时候,剩下的$N-M$个盘子都为空,问题等价于在$M$个盘子里放苹果:$$dp[M][N]=dp[M][M]$$ $2.$ 当苹果数  大于等于盘子数$(M \geq  N)$的时候,其可以分解为全部盘子都至少放一个苹果$(dp[M-N][N])$和至少有一个盘子为空$(dp[M][N-1])$的两个…
[POJ1664]放苹果 Description 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法. Input 第一行是测试数据的数目t(0 <= t <= 20).以下每行均包含二个整数M和N,以空格分开.1<=M,N<=10. Output 对输入的每组数据M和N,用一行输出相应的K. Sample Input 1 7 3 Sample Output 8 考虑dp dp[i][j]表示前i个苹…
本文基于python3.4的selenium库打开浏览器,并将浏览器中的登陆cookie保存到本地,那么下次登陆就可以直接利用cookie了: # !/usr/bin/python3.4 # -*- coding: utf-8 -*- from selenium import webdriver import time import requests from bs4 import BeautifulSoup import os import re import random import xl…