题意大概就是让你求一下[L,R]中的约数个数是素数的数的个数。

其中1<=L<=R<=1e12,R-L<=1e6.

然后我写了两种做法,第一种是可以直接搞出来L-R的约数个数,然后直接统计一下就好了。

这个的复杂度大致是 O((R-L) * log(R-L))

第二种就是需要先发现满足条件的数必须只能是一个质数的一个质数-1次方,所以直接筛。

这个的复杂度大致是 O((R-L) * 一个小于log的可以看成常数的东西)

最后需要注意一下1是不合法的,我这两种做法一开始都把1算进来了2333

code1:

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int maxn=1000000;
int zs[maxn/2],t=0,T,ans;
bool v[maxn+5];
int d[maxn+5],derta;
ll l,r,lef[maxn+5]; inline void init(){
for(int i=2;i<=maxn;i++){
if(!v[i]) zs[++t]=i;
for(int j=1,u;j<=t&&(u=zs[j]*i)<=maxn;j++){
v[u]=1;
if(!(i%zs[j])) break;
}
}
} inline void solve(){
scanf("%lld%lld",&l,&r),derta=r-l;
fill(d,d+derta+1,1),ans=0;
for(int i=0;i<=derta;i++) lef[i]=i+(ll)l; for(int i=1;i<=t&&zs[i]*(ll)zs[i]<=r;i++)
for(int j=(l-1)/zs[i]*(ll)zs[i]+(ll)zs[i]-l,now;j<=derta;j+=zs[i]){
now=1;
while(!(lef[j]%zs[i])) lef[j]/=zs[i],now++;
d[j]*=now;
}
for(int i=0;i<=derta;i++){
if(lef[i]!=1) d[i]*=2;
if(!v[d[i]]) ans++;
} if(l==1) ans--;
printf("%d\n",ans);
} int main(){
init();
scanf("%d",&T);
while(T--) solve();
return 0;
}

code2:

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int maxn=1000000;
int zs[maxn/2],t=0,T,ans,derta;
bool v[maxn+5],vis[maxn+5];
ll l,r; inline void init(){
for(int i=2;i<=maxn;i++){
if(!v[i]) zs[++t]=i;
for(int j=1,u;j<=t&&(u=zs[j]*i)<=maxn;j++){
v[u]=1;
if(!(i%zs[j])) break;
}
}
} inline void solve(){
scanf("%lld%lld",&l,&r),derta=r-l;
memset(vis,0,sizeof(vis)),ans=0;
for(int i=1;i<=t&&zs[i]*(ll)zs[i]<=r;i++){
for(ll j=zs[i],u=2;j<=r;j*=(ll)zs[i],u++) if(!v[u]&&j>=l) ans++;
for(int j=r/zs[i]*zs[i]-l;j>=0;j-=zs[i]) vis[j]=1;
}
for(int i=0;i<=derta;i++) if(!vis[i]) ans++;
if(l==1) ans--;
printf("%d\n",ans);
} int main(){
init();
scanf("%d",&T);
while(T--) solve();
return 0;
}

Codechef Yet another cute girl的更多相关文章

  1. CodeChef November Challenge 2013 部分题解

    http://www.codechef.com/NOV13 还在比...我先放一部分题解吧... Uncle Johny 排序一遍 struct node{ int val; int pos; }a[ ...

  2. 【BZOJ-3514】Codechef MARCH14 GERALD07加强版 LinkCutTree + 主席树

    3514: Codechef MARCH14 GERALD07加强版 Time Limit: 60 Sec  Memory Limit: 256 MBSubmit: 1288  Solved: 490 ...

  3. 【BZOJ4260】 Codechef REBXOR 可持久化Trie

    看到异或就去想前缀和(⊙o⊙) 这个就是正反做一遍最大异或和更新答案 最大异或就是很经典的可持久化Trie,从高到低贪心 WA: val&(1<<(base-1))得到的并不直接是 ...

  4. CUTE FTP 控制连接已关闭

    使用Cute FTP连接FTP站点时,出现上述错误,在另外一台电脑上却可以正常连接. 原因:FTP服务器IP访问规则的限制 解决方法:在ServerU 服务器中进入服务器详细信息配置界面,在IP访问规 ...

  5. 越狱Season 1-Episode 4: Cute Poison

    Season 1, Episode 4: Cute Poison [Previously on Prison Break] previously: 以前地 前情提要 -Burrows: I didn' ...

  6. codechef 两题

    前面做了这场比赛,感觉题目不错,放上来. A题目:对于数组A[],求A[U]&A[V]的最大值,因为数据弱,很多人直接排序再俩俩比较就过了. 其实这道题类似百度之星资格赛第三题XOR SUM, ...

  7. codechef January Challenge 2014 Sereja and Graph

    题目链接:http://www.codechef.com/JAN14/problems/SEAGRP [题意] 给n个点,m条边的无向图,判断是否有一种删边方案使得每个点的度恰好为1. [分析] 从结 ...

  8. BZOJ3509: [CodeChef] COUNTARI

    3509: [CodeChef] COUNTARI Time Limit: 40 Sec  Memory Limit: 128 MBSubmit: 339  Solved: 85[Submit][St ...

  9. CodeChef CBAL

    题面: https://www.codechef.com/problems/CBAL 题解: 可以发现,我们关心的仅仅是每个字符出现次数的奇偶性,而且字符集大小仅有 26, 所以我们状态压缩,记 a[ ...

随机推荐

  1. javase(1)_基础语法

    一.java概述 1.Java语言特点:纯面向对象(一切皆对象),平台无关(JVM屏蔽底层运行平台的差异),不同的平台有不同的JVM,JVM将程序翻译成当前操作系统能执行的程序,一次编译到处运行),健 ...

  2. Ukulele 原来你也在这里

  3. 组件开发中的Controller View模式

    “Controller View”模式: 组件嵌套中,最顶层的组件只管理State 子组件为纯组件 顶层组件分配State给子组件,作为子组件的props 子组件接受顶层组件发来的State作为自身的 ...

  4. DOM事件总结

    1.DOM事件: DOM0: element.onclick=function(){} DOM2: element.addEventListener(‘click’,function(){}) add ...

  5. Codeforces Round #510 #A

    http://codeforces.com/contest/1042/problem/A 题目大意就是: 现在公园里有n个长椅(要多长有多长),第i个长椅上有a[i]个人(泰山崩于前而不乱),现在又有 ...

  6. 牛客网暑期ACM多校训练营(第一场)J Different Integers(树状数组, 离线)

    题意: 给定n个数字, 然后给出m个区间, 求区间外其他数字的种类有多少. 分析: 将区间以r为基准升序排序, 每次处理pre~r的数字第一次出现的位置. #include<bits/stdc+ ...

  7. 关于set和multiset的一些用法

    set的一些用法 set的特性 set的特性是,所有元素都会根据元素的键值自动排序,set不允许两个元素有相同的键值. set的一些常用操作函数 insert() insert(key_value); ...

  8. 哈夫曼树:HDU5884-Sort(队列、哈夫曼树)

    Sort Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) 题目链接:http://ac ...

  9. idea导入jdk源码查看(xjl456852原创)

    idea添加了jdk环境后,却无法查看jdk源码,只能通过idea自带的反编译查看,看起来有些不爽. 下面来说一下如何设置,导入jdk源码,查看时通过源码查看jdk. 1.点击菜单 File -> ...

  10. Hive 执行sql命令报错

    Failed with exception java.io.IOException:java.lang.IllegalArgumentException: java.net.URISyntaxExce ...