题目链接:

https://nanti.jisuanke.com/t/31452

AC代码(看到不好推的定理就先打表!!!!):

#include<bits/stdc++.h>
using namespace std;
# define maxn 40000+100
int a[maxn];
int b[maxn];
int ans=0;
char s[1000];
int c[maxn];
int ti=0;
void f()
{
memset(c,0,sizeof(c));
memset(b,0,sizeof(b));
memset(a,0,sizeof(a));
for(int i=2; i<=maxn; i++)
{
if(a[i])continue;
b[i]=1;
c[++ans]=i;
for(int j=i; j<=maxn; j+=i)
{
a[j]=1;
}
}
}
bool judge(int t)
{
int y=t;
int t1=0,t2=0,t3=0,t4=0,t5=0,t6=0;
int num=0;
int w[220];
memset(w,0,sizeof(w));
while(t)
{
int g=t%10;
w[++num]=g;
if(b[g]==0)return false;
t=t/10;
}
if(num==3)
{
t1=w[num]*10+w[num-1];
t2=w[num-1]*10+w[num-2];
t3=w[num-1]*10+w[num];
t4=w[num-2]*10+w[num-1];
t5=w[1]*10+w[3];
t6=w[3]*10+w[1];
}
if(t1!=0&&b[t1]==0)return false;
if(t2!=0&&b[t2]==0)return false;
if(t3!=0&&b[t3]==0)return false;
if(t4!=0&&b[t4]==0)return false;
if(t5!=0&&b[t5]==0)return false;
if(t6!=0&&b[t6]==0)return false;
printf("Case #%d: %d\n",++ti,y);
return true;
}
int main()
{
f();
b[1]=1;
int n;
scanf("%d",&n);
while(n--)
{
scanf("%s",s);
int len=strlen(s);
if(len>=4)printf("Case #%d: %d\n",++ti,317);
else
{
int temp=0;
for(int i=0; i<len; i++)
{
temp=temp*10+(s[i]-'0');
}
int t=lower_bound(c+1,c+ans+1,temp)-c;
if(c[t]!=temp)
{
t--;
for(int j=t; j>=1; j--)
{
if(judge(c[j]))break;
}
}
else
{
for(int j=t; j>=1; j--)
{
if(judge(c[j]))break;
}
}
}
}
return 0;
}

ACM-ICPC 2018 沈阳赛区网络预赛 K题的更多相关文章

  1. ACM-ICPC 2018 沈阳赛区网络预赛 K Supreme Number(规律)

    https://nanti.jisuanke.com/t/31452 题意 给出一个n (2 ≤ N ≤ 10100 ),找到最接近且小于n的一个数,这个数需要满足每位上的数字构成的集合的每个非空子集 ...

  2. ACM-ICPC 2018 沈阳赛区网络预赛-K:Supreme Number

    Supreme Number A prime number (or a prime) is a natural number greater than 11 that cannot be formed ...

  3. ACM-ICPC 2018 沈阳赛区网络预赛 K. Supreme Number

    A prime number (or a prime) is a natural number greater than 11 that cannot be formed by multiplying ...

  4. ACM-ICPC 2018 焦作赛区网络预赛 K题 Transport Ship

    There are NN different kinds of transport ships on the port. The i^{th}ith kind of ship can carry th ...

  5. 【ACM-ICPC 2018 沈阳赛区网络预赛 K】Supreme Number

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 显然每个数字只可能是1,3,5,7 然后如果3,5,7这些数字出现两次以上.显然两个3||5||7都能被11整除. 然后1的话最多能 ...

  6. Fantastic Graph 2018 沈阳赛区网络预赛 F题

    题意: 二分图 有k条边,我们去选择其中的几条 每选中一条那么此条边的u 和 v的度数就+1,最后使得所有点的度数都在[l, r]这个区间内 , 这就相当于 边流入1,流出1,最后使流量平衡 解析: ...

  7. Made In Heaven 2018 沈阳赛区网络预赛 D题

    求第k短路 模板题 套模板即可 #include <iostream> #include <cstring> #include <cstdio> #include ...

  8. ACM-ICPC 2018 沈阳赛区网络预赛 I 题 Lattice's basics in digital electronics

    原题链接:https://nanti.jisuanke.com/t/31450 附上队友代码:(感谢队友带飞) #include <bits/stdc++.h> using namespa ...

  9. ACM-ICPC 2018 沈阳赛区网络预赛-D:Made In Heaven(K短路+A*模板)

    Made In Heaven One day in the jail, F·F invites Jolyne Kujo (JOJO in brief) to play tennis with her. ...

随机推荐

  1. ansible系列6-用户管理

    第一种:新增用户 ansible host -m user -a "name=zhang shell=/bin/bash groups=admin,root append=yes home= ...

  2. BZOJ2223[Coci 2009]PATULJCI——主席树

    题目描述 输入  先输入一个数n,然后一个数表示这n个数中最大的是多少,接下来一行n个数.然后一个数m,最后m行询问每次两个数l,r. 输出 no或者yes+这个数 样例输入 10 3 1 2 1 2 ...

  3. Catenyms POJ - 2337(单词+字典序输出路径)

    题意: 就是给出几个单词 看能否组成欧拉回路或路径  当然还是让输出组成的最小字典序的路 解析: 还是把首尾字母看成点   把单词看成边 记录边就好了 这题让我对fleury输出最小字典序又加深了一些 ...

  4. python3.5 opencv3显示视频fps

    由于要进行多路视频的处理,所以fps就很重要 fps介绍 模板: 1.获取某一时刻的fps import time while True: start_time = time.time() # sta ...

  5. 【BZOJ4738/UOJ#276】汽水(点分治,分数规划)

    [BZOJ4738/UOJ#276]汽水(点分治,分数规划) 题面 BZOJ UOJ 题解 今天考试的题目,虽然说是写完了,但是感觉还是半懂不懂的来着. 代码基本照着\(Anson\)爷的码的,orz ...

  6. GDB最常用的命令

    为了调试我的指针LCT--我学会了如何使用gdb! 粘一个常用命令表(原文地址:https://blog.csdn.net/tzshlyt/article/details/53668885) gcc ...

  7. mathML如何在谷歌浏览器进行展示

    前几天不是做了个word公式的解析吗,就是office插入的公式是个xmlObject对象,读出来就是个String,所以要进行转换才能在网页上展示,其实我对这方面也不是很了解,然后各种百度解决方案, ...

  8. Centos6.5的MySQL5.7.15二进制源码单机版安装

    0.说明 最近在CentOS6.5上安装mysql,想要知道具体的安装过程,不想要通过yum直接一键安装,折腾一番,但是总遇到些麻烦.于是将mysql文档中的关于如何在Linux上安装mysql的部分 ...

  9. 【codevs4829】数字三角形++

    题目大意:给定一个数字三角形,求从 (1,1) 到第 N 行的路径经过的权值之和加上该路径上任意一个点的权值之和的最大值. 题解:任意加一条路径上的某个值,可以看成是多了一次选择的权利,即:在每次经过 ...

  10. 理解for循环

    先给大家出一个小题目,看看最终我们的i的值是多少? for(var i=0;i<10;i+=2){ if(i<=5){ i++; continue; }else{ i--; break; ...