topcoder srm 623解题报告

2024-05-15 08:58
文章标签 报告 解题 srm 623 topcoder

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

详见:http://robotcator.logdown.com/posts/231132-topcoder-srm-623


推荐使用插件greed 2.0,非常使用的插件。但我不知道如何自己添加测试数据,下次再学习下。
Greed 2.0 https://github.com/shivawu/topcoder-greed
250pt
题意:环形跑道上有n棵树,标号为1--n,Alice跑步时记录下一些树的标号。问通过这些编号计算她最少跑了多少圈。
题解:稍微想一下就知道,一圈下来树的编号都是递增的,所以相邻记录非递增则增加一圈,这样圈数最少。

class RunningAroundPark {public:int numberOfLap(int N, vector<int> d) {int cnt = 0;for(int i = 1; i < d.size(); i ++){if(d[i] <= d[i-1]) cnt ++;}return cnt+1;}
};

500pt
题意:有一序列未知a,但给一个序列d,其中d[i]表示a[i]换算为二进制时末尾零的个数。问a中存在多少对(i, j)使得i--j区间的数为几何级数(等比数列,公比为实数)。
题解:考虑数位性质,a[i]与a[i+1]相差d[i+1]-d[i]个零,那么a[i]左移或者右移d[i+1]-d[i]位得到a[i+1],即乘以2^(d[i+1]-d[i])。所以区间(i, j)中d为等差数列,那么a在相应的区间为等比数列。范围不大,暴力。

class PotentialGeometricSequence {public:int numberOfSubsequences(vector<int> d) {int cnt = 0;for(int l = 3; l <= d.size(); l ++){for(int i = 0; i <= d.size()-l; i ++){int g = d[i+1] - d[i];int flag = 1;for(int j = i+1; j < i+l-1; j ++){if(d[j+1]-d[j] != g) {flag = 0; break;}
           }if(flag == 1) cnt ++;}}return cnt+2*d.size()-1;// 2*d.size()-1分别是序列长度为1,2的时候的(i,j)对数
    }
};

1000 pt
题意:给定集合d,求有多少个d的子集,子集所有元素的积为goodValue。
题解:记忆化搜索。
注意事项:记忆化搜索因为是递归,所以要想清楚递归边界,还有就是如果已存储则直接返回不需要递归计算。

   不整除 整除   

原谅我不会打整除和不整除符号,把公式弄残了。还望大侠指教。

class GoodSubset {public:map<pair<int, int>, int> m;int dp(int goodValue, vector<int> d, int cur){if(cur == 0){if(goodValue == 1) return 1;else return 0;}if(m.find(make_pair(goodValue, cur)) != m.end()){return m[make_pair(goodValue, cur)];}int ans = 0;if(goodValue%d[cur-1] != 0){return m[make_pair(goodValue, cur)] = dp(goodValue, d, cur-1);}else{ans += dp(goodValue, d, cur-1);ans %= mod;ans += dp(goodValue/d[cur-1], d, cur-1);ans %= mod;return m[make_pair(goodValue, cur)] = ans;}}int numberOfSubsets(int goodValue, vector<int> d) {m.clear();int cnt = dp(goodValue, d, d.size());if(goodValue == 1) cnt --;return cnt;}
};

这篇关于topcoder srm 623解题报告的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

芯片后端之 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。也许,你认为你的应用的健壮性已经近乎完美,轻松的经受住了测试部门魔鬼般的考验,但是当你的应用发布到市

做TopCoder应注意什么

本文献给那些把c当作自己主要编程语言而且有一定c++基础,想做topcoder的人 1.topcoder的题目不需要标准输入输出cin,cout,scanf,printf,所有的参数都是通过函数参数传递的形式输入  输出通过return返回。例如: 一般topcoder题都有如下的说明: Class: Substitute Method:getValue Parameters

用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