暑假集训cf50练之18

Codeforces Round #426 (Div. 2)

A,判断向哪边旋转的,枚举过的=  =,感觉我的太复杂了,应该有更简单的方法

#include<map>
#include<set>
#include<cmath>
#include<queue>
#include<stack>
#include<vector>
#include<cstdio>
#include<cassert>
#include<iomanip>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#define C 0.5772156649
#define pi acos(-1.0)
#define ll long long
#define mod 1000000007
#define ls l,m,rt<<1
#define rs m+1,r,rt<<1|1
#pragma comment(linker, "/STACK:1024000000,1024000000")

using namespace std;

const double g=10.0,eps=1e-7;
const int N=200000+10,maxn=500+100,inf=0x3f3f3f;

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    string a,b;
    int n;
    cin>>a>>b>>n;
    n%=4;
    if(a[0]==‘^‘)
    {
        if(b[0]==‘>‘)
        {
            if(n==1)
            {
                cout<<"cw"<<endl;
                return 0;
            }
            else if(n==3)
            {
                cout<<"ccw"<<endl;
                return 0;
            }
        }
        if(b[0]==‘v‘)
        {
            if(n==2)
            {
                cout<<"undefined"<<endl;
                return 0;
            }
        }
        if(b[0]==‘<‘)
        {
            if(n==3)
            {
                cout<<"cw"<<endl;
                return 0;
            }
            else if(n==1)
            {
                cout<<"ccw"<<endl;
                return 0;
            }
        }
    }
   if(a[0]==‘>‘)
    {
        if(b[0]==‘v‘)
        {
            if(n==1)
            {
                cout<<"cw"<<endl;
                return 0;
            }
            else if(n==3)
            {
                cout<<"ccw"<<endl;
                return 0;
            }
        }
        if(b[0]==‘<‘)
        {
            if(n==2)
            {
                cout<<"undefined"<<endl;
                return 0;
            }
        }
        if(b[0]==‘^‘)
        {
            if(n==3)
            {
                cout<<"cw"<<endl;
                return 0;
            }
            else if(n==1)
            {
                cout<<"ccw"<<endl;
                return 0;
            }
        }
    }
    if(a[0]==‘v‘)
    {
        if(b[0]==‘<‘)
        {
            if(n==1)
            {
                cout<<"cw"<<endl;
                return 0;
            }
            else if(n==3)
            {
                cout<<"ccw"<<endl;
                return 0;
            }
        }
        if(b[0]==‘^‘)
        {
            if(n==2)
            {
                cout<<"undefined"<<endl;
                return 0;
            }
        }
        if(b[0]==‘>‘)
        {
            if(n==3)
            {
                cout<<"cw"<<endl;
                return 0;
            }
            else if(n==1)
            {
                cout<<"ccw"<<endl;
                return 0;
            }
        }
    }
    if(a[0]==‘<‘)
    {
        if(b[0]==‘^‘)
        {
            if(n==1)
            {
                cout<<"cw"<<endl;
                return 0;
            }
            else if(n==3)
            {
                cout<<"ccw"<<endl;
                return 0;
            }
        }
        if(b[0]==‘>‘)
        {
            if(n==2)
            {
                cout<<"undefined"<<endl;
                return 0;
            }
        }
        if(b[0]==‘v‘)
        {
            if(n==3)
            {
                cout<<"cw"<<endl;
                return 0;
            }
            else if(n==1)
            {
                cout<<"ccw"<<endl;
                return 0;
            }
        }
    }
    cout<<"undefined"<<endl;
    return 0;
}
/********************

********************/

A

B,判断同时打开的门最大有多少,暴力艹过了(yes,no写反,导致wa了一发)

#include<map>
#include<set>
#include<cmath>
#include<queue>
#include<stack>
#include<vector>
#include<cstdio>
#include<cassert>
#include<iomanip>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#define C 0.5772156649
#define pi acos(-1.0)
#define ll long long
#define mod 1000000007
#define ls l,m,rt<<1
#define rs m+1,r,rt<<1|1
#pragma comment(linker, "/STACK:1024000000,1024000000")

using namespace std;

const double g=10.0,eps=1e-7;
const int N=200000+10,maxn=500+100,inf=0x3f3f3f;

int b[30],e[30];
set<int>ans;
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    int n,k;
    string s;
    cin>>n>>k>>s;
    memset(b,-1,sizeof b);
    memset(e,-1,sizeof e);
    for(int i=0;i<n;i++)
    {
        int p=s[i]-‘A‘;
        if(b[p]==-1)b[p]=e[p]=i;
        else e[p]=i;
    }
    int res=0;
    for(int i=0;i<n;i++)
    {
        int p=s[i]-‘A‘;
        if(i==b[p])ans.insert(p);
        res=max(res,(int)ans.size());
        if(i==e[p])ans.erase(p);
    }
    //cout<<res<<endl;
    if(res<=k)cout<<"NO"<<endl;
    else cout<<"YES"<<endl;
    return 0;
}
/********************

********************/

C,先判断a*b是不是某个数(k)的3次方,再根据a/k,b/k相乘是不是等于k判断,这里要除k的原因是有可能a,b中其中一个是含有k因子的3次方,这样除k之后就是小于0了(wa了四发才过)

#include<map>
#include<set>
#include<cmath>
#include<queue>
#include<stack>
#include<vector>
#include<cstdio>
#include<cassert>
#include<iomanip>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#define C 0.5772156649
#define pi acos(-1.0)
#define ll long long
#define ull unsigned long long
#define mod 1000000007
#define ls l,m,rt<<1
#define rs m+1,r,rt<<1|1
#pragma comment(linker, "/STACK:1024000000,1024000000")

using namespace std;

const double g=10.0,eps=1e-7;
const int N=200000+10,maxn=500+100,inf=0x3f3f3f;

map<ll,ll>ma;
ll gcd(ll a,ll b)
{
    return b?gcd(b,a%b):a;
}
int main()
{
   /* ios::sync_with_stdio(false);
    cin.tie(0);*/
    for(ll i=1;i<=1e6;i++)
    {
        ll p=i*i*i;
        ma[p]=i;
    }
    ll n;
    scanf("%lld",&n);
    while(n--){
        ll a,b;
        scanf("%lld%lld",&a,&b);
        ll p=ma[a*b];
        if(p!=0)
        {
            ll aa=a/p,bb=b/p;
            if(aa*bb==p)printf("Yes\n");
            else printf("No\n");
        }
        else printf("No\n");
    }
    return 0;
}
/********************

********************/

时间: 2024-10-13 22:28:50

暑假集训cf50练之18的相关文章

暑假集训cf50练之7

Codeforces Round #409 第一题很水但是wa了一发,因为没考虑K前面是K的情况 #include<map> #include<set> #include<cmath> #include<queue> #include<stack> #include<vector> #include<cstdio> #include<cassert> #include<iomanip> #inclu

暑假集训cf50练之12

这是一场爆0的比赛...... 第一题wa了20发,longlong改double再改unsigned long long还是wa,最后判断的时候改成除,边界设为1e19就过了 #include<map> #include<set> #include<cmath> #include<queue> #include<stack> #include<vector> #include<cstdio> #include<ca

暑假集训cf50练之19

Codeforces Round #388 (Div. 2) A水,总是忘记输出个数 #include<map> #include<set> #include<cmath> #include<queue> #include<stack> #include<vector> #include<cstdio> #include<cassert> #include<iomanip> #include<

暑假集训cf50练之15

CodeForces 402A 水题,模拟 #include<map> #include<set> #include<cmath> #include<queue> #include<stack> #include<vector> #include<cstdio> #include<cassert> #include<iomanip> #include<cstdlib> #include&

暑假集训cf50练之8

Codeforces Round #400 最近好像总是有点不想打,专题也刷不动,还是坚持这做了一场,虽然打到一半就没打了...(反正通常都只能做出两题) 感觉自己切水题越来越熟练了,然而难题还是不会做.. A题,水,用vector存下来就行了 #include<map> #include<set> #include<cmath> #include<queue> #include<stack> #include<vector> #in

暑假集训cf50练之3

Codeforces Round #349 (Div. 2) 第一题直接算就行了为了追求手速忘了输出yes导致wa了一发... 第二题技巧题,直接sort,然后把最大的和其他的相减就是构成一条直线,为了满足条件就+1 #include<map> #include<set> #include<cmath> #include<queue> #include<stack> #include<vector> #include<cstdi

暑假集训cf50练之14

Codeforces Round #425 (Div. 2) A超级水,三分钟1a #include<map> #include<set> #include<cmath> #include<queue> #include<stack> #include<vector> #include<cstdio> #include<cassert> #include<iomanip> #include<c

暑假集训cf50练之10

A水题,判断第一个,后面的全是0 #include<map> #include<set> #include<cmath> #include<queue> #include<stack> #include<vector> #include<cstdio> #include<cassert> #include<iomanip> #include<cstdlib> #include<cs

暑假集训(2)第五弹 ----- Who&#39;s in the Middle(poj2388)

G - Who's in the Middle Crawling in process... Crawling failed Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Description FJ is surveying his herd to find the most average cow. He wants to know how much milk this 'median