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 总结的更多相关文章

  1. Topcoder口胡记 SRM 562 Div 1 ~ SRM 599 Div 1

    据说做TC题有助于提高知识水平? :) 传送门:https://284914869.github.io/AEoj/index.html 转载请注明链接:http://www.cnblogs.com/B ...

  2. TopCoder SRM 560 Div 1 - Problem 1000 BoundedOptimization & Codeforces 839 E

    传送门:https://284914869.github.io/AEoj/560.html 题目简述: 定义"项"为两个不同变量相乘. 求一个由多个不同"项"相 ...

  3. 竞赛图的得分序列 (SRM 717 div 1 250)

    SRM 717 DIV 1 中 出了这样一道题: 竞赛图就是把一个无向完全图的边定向后得到的有向图,得分序列就是每个点的出度构成的序列. 给出一个合法的竞赛图出度序列, 要求构造出原图(原题是求(u, ...

  4. Codeforces Round #451 (Div. 2) A B C D E

    Codeforces Round #451 (Div. 2) A Rounding 题目链接: http://codeforces.com/contest/898/problem/A 思路: 小于等于 ...

  5. TopCoder SRM 667 Div.2题解

    概览: T1 枚举 T2 状压DP T3 DP TopCoder SRM 667 Div.2 T1 解题思路 由于数据范围很小,所以直接枚举所有点,判断是否可行.时间复杂度O(δX × δY),空间复 ...

  6. Topcoder SRM 648 (div.2)

    第一次做TC全部通过,截图纪念一下. 终于蓝了一次,也是TC上第一次变成蓝名,下次就要做Div.1了,希望div1不要挂零..._(:зゝ∠)_ A. KitayutaMart2 万年不变的水题. # ...

  7. SRM 638 Div.2

    250 给一个字符串 要求从一种形式换成另一形式 class NamingConvention{ private: int a, b, c; public: int d; string toCamel ...

  8. [topcoder]SRM 646 DIV 2

    第一题:K等于1或者2,非常简单.略.K更多的情况,http://www.cnblogs.com/lautsie/p/4242975.html,值得思考. 第二题:http://www.cnblogs ...

  9. [topcoder]SRM 633 DIV 2

    第一题,http://community.topcoder.com/stat?c=problem_statement&pm=13462&rd=16076 模拟就可以了. #includ ...

随机推荐

  1. ios ViewController 页面跳转

    从一个Controller跳转到另一个Controller时,一般有以下2种: 1.利用UINavigationController,调用pushViewController,进行跳转:这种采用压栈和 ...

  2. android studio修改新项目package名称

    android项目生成APK发布必须保证package唯一.新项目在已有项目基础上修改就必须修改package名称. 操作如下: 1) 在模块(module)上右键选择Refactor->Ren ...

  3. 浅谈Android五大布局——LinearLayout、FrameLayout、AbsoulteLayout、RelativeLayout和TableLayout

    Android的界面是有布局和组件协同完成的,布局好比是建筑里的框架,而组件则相当于建 筑里的砖瓦.组件按照布局的要求依次排列,就组成了用户所看见的界面.Android的五大布局分别是LinearLa ...

  4. 浏览器的DNS缓存

    通过设置hosts文件可以强制指定域名对应的IP,当修改hosts文件,想要浏览器生效,最直接的方法关闭浏览器后重新开启:如果不想重启浏览器,只需要清空浏览器的DNS缓存即可.清空DNS缓存在chro ...

  5. hdu 5256 LIS变形

    给一个数列,问最少修改多少个元素使数列严格递增.如果不是要求“严格”递增,那就是求最长不降子序列LIS,然后n-LIS就是答案.要严格递增也好办,输入的时候用每个数减去其下标处理一下就行了. /* * ...

  6. jQuery 关于ScrollableGridPlugin.js(固定表头)插件的逐步解析

    以前写前台的时候需要用哪些效果从来都是有现成的东西拿来就用的,因为自己真的是有些懒,毫无探索精神,只重视结果,不追求过程. 这个ScrollableGridPlugin.js是从网上找到的一个具有固定 ...

  7. eclipse 文本编辑器

    Eclipse文本编辑器拥有编辑器的标准功能,包括数目不限的Undo(Ctrl+Z)和Redo(Ctrl+Y)操作.使用快捷键Ctrl+F后,会出现Find/Replace对话框,快捷键Ctrl+K或 ...

  8. 从date中获取相应信息

    创建测试用表: CREATE OR REPLACE VIEW v AS SELECT TO_DATE('2015-5-5 13:14:15', 'YYYY-MM-DD HH24:MI:SS') AS ...

  9. DOM笔记(十):JavaScript正则表达式

    一.RegExp ECMAScript通过RegExp类型类支持正则表达式,语法和Perl类似: var exp = /pattern/flags; patternb部分是任何简单的或复杂的正则表达式 ...

  10. 2013年19个最棒的HTML5网站模板免费下载

    上次我们整理了14个HTML5奉献给大家下载了,今天我再给大家整理了19个2013最新的HTML5模板供有需要的朋友下载使用,它们涉及不同的行业的模板需求,支持手机设备,十分精美! 1. Affini ...