codeforces 568a//Primes or Palindromes?// Codeforces Round #315 (Div. 1)
Posted gaudar
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了codeforces 568a//Primes or Palindromes?// Codeforces Round #315 (Div. 1)相关的知识,希望对你有一定的参考价值。
题意:求使pi(n)*q<=rub(n)*p成立的最大的n。
先收集所有的质数和回文数。质数好搜集。回文数奇回文就0-9的数字,然后在头尾添加一个数。在x前后加a,就是x*10+a+a*pow(10,2)。偶回文同理。然后不能二分,因为比值不是单调的。
乱码:
#pragma comment(linker,"/STACK:1024000000,1024000000") #include<iostream> #include<cstdio> #include<string> #include<cstring> #include<vector> #include<cmath> #include<queue> #include<stack> #include<map> #include<set> #include<algorithm> #include <stack> using namespace std; const int SZ=1e7+10,INF=0x7FFFFFFF; typedef long long lon; vector<lon> pri,pld; bool isp[SZ]; void init() { memset(isp,1,sizeof(isp)); isp[0]=isp[1]=0; for(lon i=2;i*i<SZ;++i) { for(lon j=i*i;j<SZ;j+=i) { isp[j]=0; } } for(lon i=2;i<SZ;++i) { if(isp[i]) { pri.push_back(i); } } } lon pow(lon x,lon p,int rbs1,int rbs2) { lon res=1,ele=x; for(;p;p>>=1) { if(p&1)res*=ele; ele=ele*ele; } return res; } void getp(lon x,lon bit) { if(bit>8) { return; } lon res; for(lon i=0;i<=9;++i) { res=0; res=x*10; res+=(bit&1)?i*pow((lon)10,bit+1,0,0):i*pow((lon)10,bit+1,0,0); res+=i; if(i)pld.push_back(res); getp(res,bit+2); } } int main() { std::ios::sync_with_stdio(0); init(); for(lon i=0;i<=9;++i) { if(i)pld.push_back(i*11); getp(i*11,2); } for(lon i=0;i<=9;++i) { if(i)pld.push_back(i); getp(i,1); } sort(pld.begin(),pld.end()); // for(int i=0;i<pld.size();++i) // { // cout<<pld[i]<<endl; // } //cout<<pri.size()<<" "<<pld.size()<<endl; lon p,q; cin>>p>>q; lon res=0; for(lon i=1;i<2e6+10;++i) { lon num1=upper_bound(pri.begin(),pri.end(),i)-pri.begin(); lon num2=upper_bound(pld.begin(),pld.end(),i)-pld.begin(); //if(i<2600&&i>2500)cout<<i<<" "<<num1<<" "<<num2<<endl; if(num1*q<=num2*p) { res=max(res,i); } } cout<<res<<endl; return 0; }
以上是关于codeforces 568a//Primes or Palindromes?// Codeforces Round #315 (Div. 1)的主要内容,如果未能解决你的问题,请参考以下文章
Codeforces Round #568 (Div. 2)A
Codeforces Round #568 (Div. 2)B
Codeforces Round #568 (Div. 2) G1. Playlist for Polycarp (easy version) (状压dp)