Lyft Level 5 Challenge 2018 - Elimination Round翻车记
Posted gloid
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Lyft Level 5 Challenge 2018 - Elimination Round翻车记相关的知识,希望对你有一定的参考价值。
打猝死场感觉非常作死。
A:判一下起点和终点是否在其两侧即可。
#include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> using namespace std; int read() { int x=0,f=1;char c=getchar(); while (c<‘0‘||c>‘9‘) {if (c==‘-‘) f=-1;c=getchar();} while (c>=‘0‘&&c<=‘9‘) x=(x<<1)+(x<<3)+(c^48),c=getchar(); return x*f; } #define N int n,ax,ay,bx,by,cx,cy; int main() { n=read(),ax=read(),ay=read(),bx=read(),by=read(),cx=read(),cy=read(); if (bx<ax&&cx>ax||bx>ax&&cx<ax||by<ay&&cy>ay||by>ay&&cy<ay) cout<<"NO"; else cout<<"YES"; return 0; }
B:由平方差公式,当且仅当a-b=1且a+b为质数时a2-b2是质数。
#include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> using namespace std; int read() { int x=0,f=1;char c=getchar(); while (c<‘0‘||c>‘9‘) {if (c==‘-‘) f=-1;c=getchar();} while (c>=‘0‘&&c<=‘9‘) x=(x<<1)+(x<<3)+(c^48),c=getchar(); return x*f; } #define ll long long int T; ll n,m; int main() { T=read(); while (T--) { cin>>n>>m; ll a=n+m,b=n-m; if (b>1) {cout<<"NO ";continue;} bool flag=1; for (ll i=2;i*i<=a;i++) if (a%i==0) {flag=0;break;} if (flag) cout<<"YES "; else cout<<"NO "; } return 0; }
C:若后继状态都为必胜态则该状态为必败态,否则为必胜态。可以按数从大到小暴力更新,由调和级数复杂度是有保证的。
#include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> using namespace std; int read() { int x=0,f=1;char c=getchar(); while (c<‘0‘||c>‘9‘) {if (c==‘-‘) f=-1;c=getchar();} while (c>=‘0‘&&c<=‘9‘) x=(x<<1)+(x<<3)+(c^48),c=getchar(); return x*f; } #define N 100010 int n,a[N],id[N],flag[N]; int main() { n=read(); for (int i=1;i<=n;i++) id[a[i]=read()]=i; memset(flag,255,sizeof(flag)); flag[id[n]]=0; for (int i=n-1;i>=1;i--) { int x=id[i]; for (int j=x-i;j>=1;j-=i) if (a[j]>i&&!flag[j]) {flag[x]=1;break;} if (flag[x]==-1) for (int j=x+i;j<=n;j+=i) if (a[j]>i&&!flag[j]) {flag[x]=1;break;} if (flag[x]==-1) flag[x]=0; } for (int i=1;i<=n;i++) if (flag[i]) printf("A");else printf("B"); return 0; }
D:因子个数在3~5之间仅有这几种情况:pq,p2,p3,p4。对于p的幂次情况可以直接开方计算,将所有所得质数保存下来。然后考虑pq,将这个数除掉其与之前出现的所有质数的gcd,剩下的就是新出现的质因子了。开始直接交了一发泼辣的肉不出意外的T掉了。然后可能因为太晚了脑子不清醒,以奇怪的方式开始码正解,前前后后交了五次最后还是fst掉了。
E、F、G:怎么可能会啊。
result:rank437 rating+7
以上是关于Lyft Level 5 Challenge 2018 - Elimination Round翻车记的主要内容,如果未能解决你的问题,请参考以下文章
Lyft Level 5 Challenge 2018 - Final Round (Open Div. 2) B 1075B (思维)
Lyft Level 5 Challenge 2018 - Final Round (Open Div. 2)
Lyft Level 5 Challenge 2018 - Final Round Div. 1没翻车记