250pt:

直接枚举跳过的位置求和即可。

int n,m;
int ABS(int a)
{
if (a < ) return (-a);
else return a;
}
class FoxAndSightseeing
{
public:
int getMin(vector <int> p)
{
n = p.size();
int ans = ;
for (int i = ; i < n - ; ++i)
{
int s = p[];
int tmp = ;
for (int j = ; j < n; ++j)
{
if (j == i) continue;
tmp += ABS(p[j] - s);
s = p[j];
}
if (ans == || ans > tmp) ans = tmp;
}
return ans;
} };

500pt:

很简单的O(n^2)的DP:

const int inf = 0x7fffffff;
int n,m;
int dp[N];
bool isok(char a, char b)
{
if ((a == 'R' && b == 'G') || (a == 'G' && b == 'B') || (a == 'B' && b == 'R')) return true;
return false;
} class ColorfulRoad
{
public:
int getMin(string road)
{
n = road.size();
for (int i = ; i < n; ++i) dp[i] = inf;
dp[] = ;
for (int i = ; i < n; ++i)
{
for (int j = ; j < i; ++j)
{
if (isok(road[j],road[i]) && dp[j] != inf)
{
dp[i] = min(dp[i],dp[j] + (i - j)*(i - j));
}
}
}
if (dp[n - ] == inf) return -;
else return dp[n - ];
} };

1000pt:

题意:

F(n) = (n - 0^2) * (n - 1^2) * (n - 2^2) * (n - 3^2) * ... * (n - k^2), k满足n - k^2 > 0
然后给出lo,hi,p, 求lo到hi之间的i满足f(i)%p == 0的个数
lo,div取值为[1,10^12];

思路:
比赛的时候想的很乱没写出来,后来想了想当时的思路是错的。无语.....

http://codeforces.com/blog/entry/9405?locale=en   CF有人讨论了这道题目,一看就明白了。  哎....没有想到啊。

我大体说一下思路:
f(n)如果能被p整出,那么f(n)中肯定存在(n - i^2)%p == 0.   i*i < 10^12  那么i <10^6;

又有n%p == i^2 % p;  ---> n = i^2 + k*p,  i^2 + k*p < A  所以如果求[1,A]中满足的个数的话,那么其值就为(A - i^2)/p;   如果我们单纯枚举的话求值的话中间会有重复计算的j^2%p = i^2%p;  所以我们利用set记录一下重复的然后计算即可。

ll getSum(ll A, ll p)
{
set<ll> mods;
ll ans = 0;
for (ll i = 0LL; i * i < A; ++i)
{
if (mods.find((i*i % p)) != mods.end()) continue;
mods.insert(i*i % p);
ans += (A - i * i)/p;
}
return ans;
}
class SparseFactorialDiv2
{
public:
long long getCount(long long lo, long long hi, long long d)
{
return getSum(hi, d) - getSum(lo - 1, d);
} };

  

SRM 596 DIV2的更多相关文章

  1. SRM 657 DIV2

    -------一直想打SRM,但是感觉Topcoder用起来太麻烦了.题目还是英文,不过没什么事干还是来打一打好了.但是刚注册的号只能打DIV2,反正我这么弱也只适合DIV2了.. T1: 题目大意: ...

  2. Topcoder Srm 673 Div2 1000 BearPermutations2

    \(>Topcoder \space Srm \space 673 \space Div2 \space 1000 \space BearPermutations2<\) 题目大意 : 对 ...

  3. Topcoder Srm 671 Div2 1000 BearDestroysDiv2

    \(>Topcoder \space Srm \space 671 \space Div2 \space 1000 \space BearDestroysDiv2<\) 题目大意 : 有一 ...

  4. 记第一次TopCoder, 练习SRM 583 div2 250

    今天第一次做topcoder,没有比赛,所以找的最新一期的SRM练习,做了第一道题. 题目大意是说 给一个数字字符串,任意交换两位,使数字变为最小,不能有前导0. 看到题目以后,先想到的找规律,发现要 ...

  5. Topcoder srm 632 div2

    脑洞太大,简单东西就是想复杂,活该一直DIV2; A:水,基本判断A[I]<=A[I-1],ANS++; B:不知道别人怎么做的,我的是100*N*N;没办法想的太多了,忘记是连续的数列 我们枚 ...

  6. SRM 596 DIV 2

    前段时间终于配置好了TopCoder的环境,所以就拿这场的DIV2练习了一下 1. 250pt FoxAndSightseeing 题意 给你n个城市的位置,他们在同一直线上,要求你跳过其中某一个城市 ...

  7. SRM 638 Div2

    2333... 因为TC过少的参与者.加上不断fst 我掉了div2该. 幸运的是完成的背div1该.. 250 水的问题 500 水的问题.. 直接bfs扩展即可了 注意判重.  我还用康托展开了真 ...

  8. SRM 592 DIV2 报告

    昨天下午查看邮箱,看到了topcoder的SRM比赛通知和cf的比赛通知,当时什么也不想做,心里空荡荡的,忽然就想参加一下,试试看.吃完晚饭回来一看,就剩十几分钟了,匆忙把平台下了,就开始等待比赛开始 ...

  9. SRM 670 div2 A B C div1 A(贪心,子问题合并)

    A Cdgame brute force... B Drbalance 贪心,每次选最前面的-变成+,相当于后面所有的负值+2. C Treestrat 考虑集中去抓一个Red Token,以这个To ...

随机推荐

  1. ubuntu 安装ftp,配置,和java调用

    1:安装 ftp服务器 sudo apt-get install vsftpd 自动安装使用的是主机的用户名和密码:liyafei,1367xxx 访问方式,ftp://localhost:21,ft ...

  2. TileMap地图

    参考资料: http://8287044.blog.51cto.com/5179921/1045274 TileMap编辑器使用   1.认识TileMap     TileMap是一款开源的地图编辑 ...

  3. linux命令:文件搜索命令

    ---恢复内容开始--- 文件搜索命令:which 命令名称:which 命令所在路径:/usr/bin/which 执行权限:所有用户 语法:which  [命令名称] 功能描述:显示系统命令所在目 ...

  4. linux常用命令:telnet 命令

    telnet命令通常用来远程登录.telnet程序是基于TELNET协议的远程登录客户端程序.Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式.它为用户 ...

  5. mustache多次渲染和多个赋值

    mustache多次渲染和多个赋值, html页面的script标签中的代码,设置多个键: <!-- 项目列表 --> <script type="text/x-templ ...

  6. 测试开发-PC客户端测试要点

      一级测试点 二级测试点 安装测试 首次安装(exe和msi格式的不同) 安装程序权限检查 软件安装包的描述和属性信息 静默安装和非静默安装测试 有UAC安装.无UAC安装 联网安装.断网安装 对必 ...

  7. Google、亚马逊、微软 、阿里巴巴开源软件一览

    Google.亚马逊.微软 .阿里巴巴开源软件一览 大公司为什么要发布开源项目?一是开源能够帮助他人更快地开发软件,促进世界创新,主要是社会价值层面的考虑.二是开源能够倒逼工程师写出更好的代码.三是开 ...

  8. ACM题目———— 一种排序(STL之set)

    描述 输入 第一行有一个整数 0<n<10000,表示接下来有n组测试数据:每一组第一行有一个整数 0<m<1000,表示有m个长方形:接下来的m行,每一行有三个数 ,第一个数 ...

  9. ACM题目————困难的串

    题目描述 如果一个字符串包含两个相邻的重复子串,则称他是“容易的串”,其他串称为"困难的串".例如,BB,ABCDACABCAB,ABCDABCD都是容易的串,而D,DC,ABDA ...

  10. Elasticsearch 疑难解惑

    Elasticsearch是如何实现Master选举的? Elasticsearch的选主是ZenDiscovery模块负责的,主要包含Ping(节点之间通过这个RPC来发现彼此)和Unicast(单 ...