ACM-ICPC 2018 沈阳赛区网络预赛 K题
题目链接:
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题的更多相关文章
- ACM-ICPC 2018 沈阳赛区网络预赛 K Supreme Number(规律)
https://nanti.jisuanke.com/t/31452 题意 给出一个n (2 ≤ N ≤ 10100 ),找到最接近且小于n的一个数,这个数需要满足每位上的数字构成的集合的每个非空子集 ...
- 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 ...
- 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 ...
- 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 ...
- 【ACM-ICPC 2018 沈阳赛区网络预赛 K】Supreme Number
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 显然每个数字只可能是1,3,5,7 然后如果3,5,7这些数字出现两次以上.显然两个3||5||7都能被11整除. 然后1的话最多能 ...
- Fantastic Graph 2018 沈阳赛区网络预赛 F题
题意: 二分图 有k条边,我们去选择其中的几条 每选中一条那么此条边的u 和 v的度数就+1,最后使得所有点的度数都在[l, r]这个区间内 , 这就相当于 边流入1,流出1,最后使流量平衡 解析: ...
- Made In Heaven 2018 沈阳赛区网络预赛 D题
求第k短路 模板题 套模板即可 #include <iostream> #include <cstring> #include <cstdio> #include ...
- ACM-ICPC 2018 沈阳赛区网络预赛 I 题 Lattice's basics in digital electronics
原题链接:https://nanti.jisuanke.com/t/31450 附上队友代码:(感谢队友带飞) #include <bits/stdc++.h> using namespa ...
- 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. ...
随机推荐
- (C++)关于i++和i++的左值、右值问题
1.什么是左值和右值? 左值就是出现在表达式左边的值(等号左边),可以被改变,他是存储数据值的那块内存的地址,也称为变量的地址: 右值是指存储在某内存地址中的数据,也称为变量的数据. 左值可以作为右值 ...
- BZOJ5371[Pkusc2018]星际穿越——可持久化线段树+DP
题目描述 有n个星球,它们的编号是1到n,它们坐落在同一个星系内,这个星系可以抽象为一条数轴,每个星球都是数轴上的一个点, 特别地,编号为i的星球的坐标是i. 一开始,由于科技上的原因,这n个星球的居 ...
- UVALive5870-Smooth Visualization-模拟水题
很水的模拟题,拿数组搞就好了. 注意边界的地方不要算重. #include <cstdio> #include <cstring> #include <algorithm ...
- day12-13 文件操作b模式
为什么需要用到二进制的形式?我们默认的r w a 其实是rt wt at 即txt模式如果是图片,视频,音频,是无法用txt打开的,只能用b模式处理 b 模式是以字节形式打开 f = open(&qu ...
- float 、double 加减乘除出现小数位多出的问题
/** * 提供精確的加法運算 * @param args */ public static double add(double v1, double v2) { BigDecimal b1 = ne ...
- Android Service服务的生命周期
与activity类似,服务也存在生命周期回调方法,你可以实现这些方法来监控服务的状态变化,并在适当的时机执行一些操作. 以下代码提纲展示了服务的每个生命周期回调方法: public class Ex ...
- Java内存模型基础
Java内存模型的基础 并发编程模型的两个关键问题 在并发编程种,需要处理两个关键问题:线程之间如何通信及线程之间如何同步(这里的线程是指并发执行的活动实体).通信是指线程之间以何种机制来交换信息.在 ...
- Elasticsearch利用cat api快速查看集群状态、内存、磁盘使用情况
使用场景 当Elasticsearch集群中有节点挂掉,我们可以去查看集群的日志信息查找错误,不过在查找错误日志之前,我们可以通过elasticsearch的cat api简单判断下各个节点的状态,包 ...
- CF 468B Two Sets
题意: 给定n个正整数与a,b两个集合,求一种方案使得这n个数恰好被分在这两个集合中且集合中无多余的数且若x在a中则A-x在a中,若x在b中则B-x在b中. 题意理解了我好半天... 解法1:并查集. ...
- Android: 网络随时需要在3G和Wifi切换,网络程序需要注意
平时,3G和WIFI 都开着的时候,Android默认使用Wifi,但现实环境中不可能到处都有wifi,所以手机会经常自动切换网络. 有的时候,手机一开始使用wifi上网,当进入待机后10-30分钟, ...