首页 > 其他分享 >UVA967的题解

UVA967的题解

时间:2023-08-29 20:45:07浏览次数:29  
标签:10 UVA967 题解 long int res check define

设 \(check_i\) 为 \(1\sim n\) 中满足题意的数的数量。

显然答案为 \(check_j-check_{i-1}\)。

注意到 \(check\) 能直接暴力求出来。

那么就可以先把 \(10^6\) 范围内的所有质数求出来,然后所有数跑一遍,每个数都去旋转得出所有数后判断是否均为质数,记录下来。

代码很好写。

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define db double
#define ull unsigned long long
#define INF 1e9
#define eps 1e-15
using namespace std;
const int N=1e7+10;
const int M=1e6+10;
const ll mod=998244353;
int n,m,q,T;
int vis[N];
int prime[N],cnt;
int check[N];
int num[10],tot;
int pre[N];
int calc(int x)//计算位数
{
    int res=0;
    while(x)
    {
        res++;
        x/=10;
    }
    return res;
}
int rotate(int x,int ws)
{
    int qwq=1;
    for(int i=1;i<ws;i++) qwq*=10;
    int p=x%10;
    x/=10;
    return p*qwq+x;
}
void make(int x,int ws)
{
    tot=0;
    for(int i=1;i<=ws;i++)
        x=rotate(x,ws),num[++tot]=x;
}
bool judge()
{
    for(int i=1;i<=tot;i++)
        if(vis[num[i]]) return 0;
    return 1;
}
void init()
{
    for(int i=2;i<=N;i++)
    {
        if(!vis[i]) prime[++cnt]=i;
        for(int j=1;j<=cnt&&i*prime[j]<=N;j++)
        {
            vis[i*prime[j]]=1;
            if(i%prime[j]==0) break;
        }
    }
    for(int i=1;i<=1e6;i++)
    {
        if(check[i]) continue;
        make(i,calc(i));
        if(judge())
            for(int j=1;j<=tot;j++) check[num[j]]=1;
    }
    for(int i=1;i<=1e6;i++) pre[i]=pre[i-1]+check[i];
}
signed main()
{
    init();
    int x,y;
    while(scanf("%d",&x)&&x!=-1)
    {
        scanf("%d",&y);
        int ans=pre[y]-pre[x-1];
        if(!ans) printf("No Circular Primes.\n");
        else if(ans==1) printf("1 Circular Prime.\n");
        else printf("%d Circular Primes.\n",ans);
    }
    return 0;
}

标签:10,UVA967,题解,long,int,res,check,define
From: https://www.cnblogs.com/osfly/p/17665777.html

相关文章

  • 一些奇怪的题的题解
    给定\(n\),求:\[\sum_{i=1}^n\sum_{j=1}^n\frac{i+j}{\gcd(i,j)}\]思路分析:先化式子:\[\begin{aligned}\sum_{i=1}^n\sum_{j=1}^n\frac{i+j}{\gcd(i,j)}&=\sum_{d=1}^n\sum_{i=1}^n\sum_{j=1}^n\frac{i+j}{d}[\gcd(i,j)=d]\\&=\sum_{d=1}^n\s......
  • CF1774 题解
    A考虑在所有\(0\)前添加正号,在\(1\)前轮流添加正负号即可。B首先根据抽屉原理,我们可以取出最多的颜色,个数记为\(mx\),然后其余颜色可以填在\(mx\)的两两中间,最少要有\((mx-1)(k-1)\)个空位。但是只是必要的,而不是充分的。考虑有多个最大值的情况,发现这些不是作为分界......
  • RTSP/Onvif视频服务器EasyNVR视频平台设备在线但通道无法播放的问题解决方案
    EasyNVR是基于RTSP/Onvif协议的视频平台,可支持将接入的视频流进行全平台、全终端的分发,分发的视频流包括RTSP、RTMP、HTTP-FLV、WS-FLV、HLS、WebRTC等格式。为了满足用户的集成与二次开发需求,我们也提供了丰富的API接口供用户调用。有需要的用户可参照官方接口文档进行操作。......
  • P3888 题解
    problem&blog。这怎么评到紫上去的啊?差不多就个上位绿吧/qd。首先出题人非常low。为什么这样说呢?因为\(nm\le50,m\len\)就是在说\(m\le7\),出题人为了不让你一眼秒掉这一题,就用这种猥琐的方法写数据范围,是不是很傻逼呢。然后就是状压DP板板题了,判断合法状态只需要......
  • 安防视频监控平台EasyCVR视频集中存储平台接入RTSP设备出现离线情况的问题解决方案
    安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安防视频监控的能力,也具备接入AI智能分析的......
  • [HAOI2012] 高速公路 题解
    [HAOI2012]高速公路题解题目链接题目要求我们求期望,先考虑一下求期望的公式。根据期望的定义得:期望费用\(E_v=\dfrac{所有可能路线的总费用}{所有可能路线的数量}\).其中,所有可能路线的数量\(=C_{R-L+1}^2=(R-L+1)(R-L)\),可以在常数时间内计算。(这里用大写的\(L\),\(......
  • P2238 题解
    problem&blog。kkk的题解有一些地方是错的/cf,所以写篇题解造福后人。一眼DP,如果你平凡地设\(dp_{i,j}\),会发现买过的是不能再买的,然后就转移不动了。所以要记录每个点附近的点是否被吃过。于是状压,每个二进制位表示\((i,j)\)周围的一些点是否被吃过。不妨钦定\(X\)......
  • VSCode下载慢问题解决
    1.打开vscode官网浏览器搜索:vscodedownload或打开该网站https://code.visualstudio.com/Download/2.选中系统对应的版本 3.复制下载链接地址 4.修改链接地址将复制后的链接地址的域名(上图https后面框起来的那块)修改为 vscode.cdn.azure.cn最后变成类似:https......
  • 【题解 P4180】严格次小生成树
    [BJWC2010]严格次小生成树题目描述小C最近学了很多最小生成树的算法,Prim算法、Kruskal算法、消圈算法等等。正当小C洋洋得意之时,小P又来泼小C冷水了。小P说,让小C求出一个无向图的次小生成树,而且这个次小生成树还得是严格次小的,也就是说:如果最小生成树选择的边集......
  • [struts2]配置dispatcher INCLUDE和Forward可能问题解决
    Struts2.1.6GA不支持<dispatcher>FORWARD</dispatcher>和<dispatcher>INCLUDE</dispatcher>你要是和URLRewrite过滤器一起工作会报错。目前最新版本GeneralAvailability(GA)Releases-ReadyforPrimeTime!Struts2.1.8("bestavailable")Struts2.0.14(&qu......