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. Gson的两种解析用法

    第一种. 常见的解析,直接将json字符串解析为对应的类. public JavaBean getJsonString(String jsonString) { Gson gson = new Gso ...

  2. 为什么GPU可以用于科学计算【转载】

    转自:https://blog.csdn.net/xihuanyuye/article/details/81178352 https://www.zhihu.com/question/35063258 ...

  3. B*树的定义

    B*树是B+树的变体,在B+树的非根和非叶子结点再增加指向兄弟的指针: B*树定义了非叶子结点关键字个数至少为(2/3)*M,即块的最低使用率为2/3(代替B+树的1/2). 所以,B*树分配新结点的 ...

  4. c++虚函数实现机制(转)

    前言 C++中的虚函数的作用主要是实现了多态的机制.关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数.这种技术可以让父类的指针有“多种形态”,这是一种泛 ...

  5. Mysql的group by语句

    如上图查询结果,因为group by后面的字段是的分组的依据字段,所以select子句中只有是group by后面的字段,或者是聚集函数才有意义.然而mysql居然可以在select子句中出现不在gr ...

  6. Spring Security中异常上抛机制及对于转型处理的一些感悟

    在使用Spring Security的过程中,我们会发现框架内部按照错误及问题出现的场景,划分出了许许多多的异常,但是在业务调用时一般都会向外抛一个统一的异常出来,为什么要这样做呢,以及对于抛出来的异 ...

  7. UVM中的sequence使用(一)

    UVM中Driver,transaction,sequence,sequencer之间的关系. UVM将原来在Driver中的数据定义部分,单独拿出来成为Transaction,主要完成数据的rand ...

  8. C++编译器模板机制剖析

    思考:为什么函数模板可以和函数重载放在一块.C++编译器是如何提供函数模板机制的? 一.编译器编译原理 什么是gcc gcc(GNU C Compiler)编译器的作者是Richard Stallma ...

  9. Zookeeper使用实例——分布式共享锁

    前一讲中我们知道,Zookeeper通过维护一个分布式目录数据结构,实现分布式协调服务.本文主要介绍利用Zookeeper有序目录的创建和删除,实现分布式共享锁. 举个例子,性能管理系统中,告警规则只 ...

  10. linux常用命令:/etc/group文件详解

    Linux /etc/group文件与/etc/passwd和/etc/shadow文件都是有关于系统管理员对用户和 用户组管理时相关的文件.linux /etc/group文件是有关于系统管理员对用 ...