1. 程式人生 > >Lyft Level 5 Challenge 2018 - Elimination Round翻車記

Lyft Level 5 Challenge 2018 - Elimination Round翻車記

奇怪 cin bool 調和級數 size () pla none algo

  打猝死場感覺非常作死。

  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; }
View Code

  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\n";continue;} bool flag=1; for (ll i=2;i*i<=a;i++) if (a%i==0) {flag=0;break;} if (flag) cout<<"YES\n"; else cout<<"NO\n"; } return 0; }
View Code

  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;
}
View Code

  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翻車記