1644: 超能陆战队

Time Limit: 1 Sec  Memory Limit: 256 MB
Submit: 6  Solved: 1
[Submit][Status][Web Board]

Description

在与卡拉汉教授的决战中,小宏发明的微型机器人与小白最后都被吸入了空洞。然而,若干年后的一个下午,大白带着小宏的微型机器人回来了!与大白再次相聚的小宏激动不已。可是由于空洞的强大吸力,微型机器人已经部分损坏,不能像以前一样很好的合体了。当任意两个微型机器人的编号存在不小于p的公共质因子时,他们就能合并!微型机器人都是从x开始连续编号的,并且最后一个微型机器人的编号为y。现在给出p,小宏想知道合体后最少能形成几个机器人

Input

每个样例一行,分别为x,y,p 
0 <= x,y <= 1000000 
p <= 1000000

Output

每个样例输出一行

Sample Input

20 100000 6

Sample Output

8217

HINT

 

Source

解题:并查集乱搞下,TLE不是我的本意,我不知道CSUOJ的服务器到底跑多快,以及是否开启了o2,所以没有设置时限,谁知OJ管理童鞋竟然只给了1s

目前这段代码能够AC

 #include <bits/stdc++.h>
using namespace std;
const int maxn = ;
int a,b,p,tot,prime[maxn],uf[maxn];
bool vis[maxn] = {true,true};
void selectPrime(){
for(int i = ; i < maxn; ++i){
if(!vis[i]) prime[tot++] = i;
for(int j = ; j < tot && prime[j]*i < maxn; ++j){
vis[i*prime[j]] = true;
if(i%prime[j] == ) break;
}
}
}
int Find(int x){
int t = x;
while(uf[x] != x) x = uf[x];
while(uf[t] != t){
int tmp = uf[t];
uf[t] = x;
t = tmp;
}
return x;
}
int main(){
selectPrime();
while(~scanf("%d %d %d",&a,&b,&p)){
if(a > b) swap(a,b);
if(p > b){
printf("%d\n",b - a + );
continue;
}
for(int i = a; i <= b; ++i) uf[i] = i;
for(int i = ; i < tot && prime[i] <= b; ++i){
if(prime[i] >= p){
int t = a/prime[i]*prime[i];
while(t < a) t += prime[i];
int s = t + prime[i];
while(s <= b){
int x = Find(t);
int y = Find(s);
if(x != y) if(i&) uf[x] = y;else uf[y] = x;
s += prime[i];
}
}
}
int ans = ;
for(int i = a; i <= b; ++i)
if(uf[i] == i) ans++;
printf("%d\n",ans);
}
return ;
}

已经改成3s了

CSUOJ 1644 超能陆战队的更多相关文章

  1. csuoj 1511: 残缺的棋盘

    http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1511 1511: 残缺的棋盘 时间限制: 1 Sec  内存限制: 128 MB 题目描述 输入 ...

  2. 1644 免费馅饼 题解(c++)(S.B.S.)

    1644 免费馅饼(巴蜀oj上的编号) 题面:          SERKOI最新推出了一种叫做“免费馅饼”的游戏.         游戏在一个舞台上进行.舞台的宽度为W格,天幕的高度为H格,游戏者占 ...

  3. csuoj 1354: Distinct Subsequences

    这个题是计算不同子序列的和: spoj上的那个同名的题是计算不同子序列的个数: 其实都差不多: 计算不同子序列的个数使用dp的思想: 从头往后扫一遍 如果当前的元素在以前没有出现过,那么dp[i]=d ...

  4. BZOJ 1644: [Usaco2007 Oct]Obstacle Course 障碍训练课( BFS )

    BFS... 我连水题都不会写了QAQ ------------------------------------------------------------------------- #inclu ...

  5. BZOJ 1644: [Usaco2007 Oct]Obstacle Course 障碍训练课

    题目 1644: [Usaco2007 Oct]Obstacle Course 障碍训练课 Time Limit: 5 Sec  Memory Limit: 64 MB Description 考虑一 ...

  6. 1644: [Usaco2007 Oct]Obstacle Course 障碍训练课

    1644: [Usaco2007 Oct]Obstacle Course 障碍训练课 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 383  Solved ...

  7. CJOJ 1644 编辑距离 / Luogu 2758 编辑距离(动态规划)

    CJOJ 1644 编辑距离 / Luogu 2758 编辑距离(动态规划) Description 字符串是数据结构和计算机语言里很重要的数据类型,在计算机语言中,对于字符串我们有很多的操作定义,因 ...

  8. 一本通1644【例 4】佳佳的 Fibonacci

    1644:[例 4]佳佳的 Fibonacci 时间限制: 1000 ms         内存限制: 524288 KB sol:搞了大概一个多小时什么结果都没,被迫去看题解,感觉自己菜到家了qaq ...

  9. TJU Problem 1644 Reverse Text

    注意: int N; cin >> N; cin.ignore(); 同于 int N; scanf("%d\n",&N); 另:关于 cin 与 scanf: ...

随机推荐

  1. mysql-汇总(聚集)函数

    我们需要汇总数据而不用把他们实际检索出来,他们主要用来进行分析和报表数据的生成. 1.AVG:通过对表中行数计数并计算特定列值之和,求得该列的平均值.可用来返回所有列的平均值,也可以用来返回特定列或行 ...

  2. Atitit.运行cmd 命令行 php

    Atitit.运行cmd 命令行 php 1. 运行cmd 命令行,调用系统命令的基础 1 1.1. 实际运行模式 1 1.2. 空格的问题 1 1.3. 中文路径的问题.程序文件读取编码设置 1 1 ...

  3. 解读邮箱正则表达式:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$

    转自:http://www.cnblogs.com/joyceTING/archive/2013/05/09/3069089.html正则表达式 \w+([-+.]\w+)*@\w+([-.]\w+) ...

  4. String methods

    A method is similar to a function – it takes arguments and returns a value – but the syntax is diffe ...

  5. css五种定位方式介绍

    1.static定位(普通流定位) -------------- 默认定位 2.float定位(浮动定位) 例:float:left; 有两个取值:left(左浮动)和right(右浮动).浮动元素会 ...

  6. 数据绑定的知识点<%%>,<%#%>,<%=%>

    1.<% %>用来绑定后台代码 如: < % for(int i=0;i<100;i++) { Reaponse.Write(i.ToString()); } %> 2. ...

  7. vue中Object.defineProperty用法

    function def (obj, key, val, enumerable) { Object.defineProperty(obj, key, { value: val, enumerable: ...

  8. objc_clear_deallocating 与弱引用

    void *objc_destructInstance(id obj){ if (obj) { Class isa_gen = _object_getClass(obj); class_t *isa ...

  9. 逻辑学总结x

    逻辑学是研究事实联系: 肯定.否定: 条件 结论: 联系  规则: 的学问.

  10. mac、windows如何强制关闭tomcat进程

    方式1.打开cmd,或mac的终端,输入: ① ps aux | grep "tomcat",找到响应的进程id: ② kill -9 查询的id,来强制关闭进程 方式2:wind ...