SRM 451 DIV 1 总结
250p:这次是有史以来做的最快的一次250p。。。看题花了两分钟,敲代码最多一分钟。。。太明显了题意~
500p:这题水了。。。每次都这样。。。很显然用DP来做,不过前面状态表示有问题了。。。搞了好久还是错的。。
题意:给你一系列点,每个点都有一个硬币,刚开始从点(0, 0)开始走,每次只能按照以下规律走,第一次从(x, y)走到(x+k1, y+1),第二次从当前点(x, y)走到(x+k2, y+2),要保证k1 < k2 < ... < kn,问最多能收集几个硬币
解题思路:用dp[i][j]表示到了当前i这个点收集到j个硬币的最小步数,最小步数表示y-1走到当前y最少需要的步数,注意而不是前一个点走到当前点的步数。
250p:
class MagicalSource {
public:
long long calculate(long long x) ; }; long long MagicalSource::calculate(long long x) {
LL cur = 1;
while(x >= cur*10+1) {
cur = cur*10+1;
}
while(x%cur != 0) {
cur /= 10;
}
return x/cur;
}
500p:
class BaronsAndCoins {
public:
int getMaximum(vector <int> x, vector <int> y) ; }; struct PP {
int x, y;
bool operator < (const PP &a) const {
return y < a.y;
}
}a[55]; int dp[55][55]; int cal(int n) {
return n*(n+1)/2;
} int max(int a, int b) {
return a > b ? a : b;
} int BaronsAndCoins::getMaximum(vector <int> xx, vector <int> yy) {
int len = xx.size();
int i, j, k;
for(i = 1;i <= len; i++) {
a[i].x = xx[i-1];
a[i].y = yy[i-1];
}
sort(a+1, a + len+1);
memset(dp, -1, sizeof(dp));
dp[0][0] = 0;
a[0].x = 0, a[0].y = 0;
for(i = 0;i <= len; i++) {
for(j = i+1;j <= len; j++) {
if(a[j].y == a[i].y || a[j].x <= a[i].x) continue;
for(k = 0;k <= len; k++) if(dp[i][k] != -1){
int dis = a[j].x - a[i].x;
int step = a[j].y - a[i].y;
int now = dp[i][k]*step + cal(step);
if(now > dis) continue;
int curk = step+dp[i][k];
while(now < dis) {
now += step;
curk++;
}
if(dp[j][k+1] == -1) dp[j][k+1] = curk;
else if(dp[j][k+1] > curk) dp[j][k+1] = curk;
}
}
}
int ans = 0;
for(i = 0;i <= len; i++)
for(j = 0;j <= len; j++) if(dp[i][j] != -1) {
ans = max(ans, j);
}
return ans;
}
SRM 451 DIV 1 总结的更多相关文章
- Topcoder口胡记 SRM 562 Div 1 ~ SRM 599 Div 1
据说做TC题有助于提高知识水平? :) 传送门:https://284914869.github.io/AEoj/index.html 转载请注明链接:http://www.cnblogs.com/B ...
- TopCoder SRM 560 Div 1 - Problem 1000 BoundedOptimization & Codeforces 839 E
传送门:https://284914869.github.io/AEoj/560.html 题目简述: 定义"项"为两个不同变量相乘. 求一个由多个不同"项"相 ...
- 竞赛图的得分序列 (SRM 717 div 1 250)
SRM 717 DIV 1 中 出了这样一道题: 竞赛图就是把一个无向完全图的边定向后得到的有向图,得分序列就是每个点的出度构成的序列. 给出一个合法的竞赛图出度序列, 要求构造出原图(原题是求(u, ...
- Codeforces Round #451 (Div. 2) A B C D E
Codeforces Round #451 (Div. 2) A Rounding 题目链接: http://codeforces.com/contest/898/problem/A 思路: 小于等于 ...
- TopCoder SRM 667 Div.2题解
概览: T1 枚举 T2 状压DP T3 DP TopCoder SRM 667 Div.2 T1 解题思路 由于数据范围很小,所以直接枚举所有点,判断是否可行.时间复杂度O(δX × δY),空间复 ...
- Topcoder SRM 648 (div.2)
第一次做TC全部通过,截图纪念一下. 终于蓝了一次,也是TC上第一次变成蓝名,下次就要做Div.1了,希望div1不要挂零..._(:зゝ∠)_ A. KitayutaMart2 万年不变的水题. # ...
- SRM 638 Div.2
250 给一个字符串 要求从一种形式换成另一形式 class NamingConvention{ private: int a, b, c; public: int d; string toCamel ...
- [topcoder]SRM 646 DIV 2
第一题:K等于1或者2,非常简单.略.K更多的情况,http://www.cnblogs.com/lautsie/p/4242975.html,值得思考. 第二题:http://www.cnblogs ...
- [topcoder]SRM 633 DIV 2
第一题,http://community.topcoder.com/stat?c=problem_statement&pm=13462&rd=16076 模拟就可以了. #includ ...
随机推荐
- SmartWeatherAPI_Lite_WebAPI C# 获取key加密
中国气象局面向网络媒体.手机厂商.第三方气象服务机构等用户,通过 web 方式提供数据气象服务的官方载体. 在一周前已经申请到appid,但是苦于没有C#版的key 的算法,一直验证不通过,经过几天查 ...
- Node.js的循环依赖
我们知道在实际编程过程中,要尽可能的减少或者规避循环依赖情况的发生.但在现实环境中,有时却不得不产生循环依赖.Node.js不提倡使用循环依赖,但真有如此情况发生时Node.js也有办法解决.这篇博文 ...
- 树莓派 安装 OpenCV 使用CMake 编译工程 最新版2015
一.安装make,cmake sudo apt-get install make sudo apt-get install cmake 二.下载deb包 去这里下载libopencv_2.4.10.d ...
- CSS使jsp图片旋转90度
<style > img{ margin:100px auto 0; -moz-transform:rotate(-90deg); -webkit-transform:rotate(-90 ...
- 获取Request请求的路径信息
从Request对象中可以获取各种路径信息,以下例子: 假设请求的页面是index.jsp,项目是WebDemo,则在index.jsp中获取有关request对象的各种路径信息如下 String p ...
- 恢复SD卡错删数据
对于众多米粉来说,手机里存储的很多资料都非常宝贵,如果不小心删除了,想要重新收集这些资料就显得非常困难.有道是千金易得,数据无价,特别是一些珍贵照片之类的充满回忆的数据,丢失了甚至会抱憾 ...
- object does not contain a definition for get_range
原因[1] 在VS2012中调用COM Interop DLL操作Excel通过get_Range去获取Range时,会发生Object does not contain a definition ...
- 实现两个N*N矩阵的乘法,矩阵由一维数组表示
实现两个N*N矩阵的乘法,矩阵由一维数组表示. 先介绍一下矩阵的加法: void Add(int rows, int cols) { ;i<rows;i++) { ;j<cols;j++) ...
- 关于nginx upstream的几种配置方式
平时一直依赖硬件来作load blance,最近研究Nginx来做负载设备,记录下upstream的几种配置方式. 第一种:轮询 upstream test{ server 192.168.0 ...
- JAVA 锁
JAVA 锁 锁的概念 Java中的锁是控制资源访问的一种方式.它弥补了synchronized的可操作性不强的不足. Java的锁都实现了Lock接口.Lock结构定义了锁的基本操作. 函数 解释 ...