头像

djdsn1565




离线:19天前


活动打卡代码 AcWing 1216. 饮料换购

djdsn1565
27天前
#include<iostream>
using namespace std;
int main()
{
    int n;
    cin>>n;
    int res=n;
    while(n>=3)
    {
        int t=n%3;
        n/=3;
        res+=n;
        n=n+t;
    }
    cout<<res;
    return 0;
}


活动打卡代码 AcWing 1211. 蚂蚁感冒

djdsn1565
27天前
#include<iostream>
#include<algorithm>
using namespace std;
int a[50];
int main()
{
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
    }
    int res=1;
    int left=0;//左边的从左向右的玛依 
    int right=0;//右边的从右向左玛依 
    //假设有病的朝右走
    if(a[1]>0)
    {
    for(int i=2;i<=n;i++)
    {
        if(a[i]<0&&abs(a[i])>abs(a[1]))
        {
            res++;
            right++;
        }
    }
    for(int i=2;i<=n;i++)
    {
        if(right)
        {
            if(a[i]>0&&abs(a[i])<abs(a[1]))
            {
                res++;
                left++;
            }
        }
    } 
    }   
    if(a[1]<0)
    {
        for(int i=2;i<=n;i++)
        {
            if(a[i]>0&&abs(a[i])<abs(a[1]))
            {
                res++;
                left++;
            }

        }
        for(int i=2;i<=n;i++)
        {
            if(left)
            {if(a[i]<0&&abs(a[i])>abs(a[1]))
            {
                res++;
                right++;
            }}
        }
    }
    cout<<res;
    return 0;
}


活动打卡代码 AcWing 789. 数的范围

djdsn1565
28天前
#include<iostream>
using namespace std;
int main()
{
    int n,q;
    int a[100001];
    cin>>n>>q;
    for(int i=0;i<n;i++)
    {
        cin>>a[i];
    }
    int t;
    for(int k=1;k<=q;k++)
    {
        cin>>t;
        int l=0;
        int r=n-1;
        while(l<r)
        {
            int mid=l+r>>1;
            if(a[mid]>=t)
            {
                r=mid;
            }
            else l=mid+1;
        }
        if(a[r]==t)
        {
            cout<<r<<" ";
            l=0;r=n-1;
            while(l<r)
            {
                int mid=l+r+1>>1;
                if(a[mid]<=t)
                    l=mid;
                else r=mid-1;
            }
        if(a[r]==t)
            cout<<r<<endl;
        }
        else cout<<"-1 -1"<<endl;


    }
    return 0;
}


活动打卡代码 AcWing 1209. 带分数

djdsn1565
28天前
#include<iostream>
#include<cstring>
using namespace std;
int n;
int res=0;
int biao[10];
int back[10];
bool check(int a,int c)
{
    long long int b=n*(long long int)c-a*c;
    if(!a||!b||!c)
        return false;
    memcpy(back,biao,sizeof biao);
    while(b)
    {
        int t=b%10;
        if(!t||back[t])
            return false;
        back[t]=1;
        b/=10;
    }
    for(int i=1;i<=9;i++)
    {
        if(!back[i])
            return false;
    }
    return true;
}
void dfsc(int u,int a,int c)
{
    if(u>9)
        return;
    if(check(a,c))
        res++;
    for(int i=1;i<=9;i++)
    {
        if(!biao[i])
        {
            biao[i]=1;
            dfsc(u+1,a,c*10+i);
            biao[i]=0;
        }
    }
}
void dfsa(int u,int a)
{
    if(a>=n)
        return;
    //if(a)
        dfsc(u,a,0);
    for(int i=1;i<=9;i++)
    {
        if(!biao[i])
        {
            biao[i]=1;
            dfsa(u+1,a*10+i);
            biao[i]=0;
        }
    }
}
int main()
{
    cin>>n;
    dfsa(0,0);
    cout<<res;
    return 0;
}


活动打卡代码 AcWing 116. 飞行员兄弟

djdsn1565
28天前
#include<iostream>
#include<cstring>
#include<algorithm>
#include<vector>
using namespace std;
char a[6][6];
char b[6][6];
vector<int> o;
vector<int> p;
vector<int> O;
vector<int> P; 
int dx[]={-3,-2,-1,0,1,2,3,0,0,0,0,0,0};
int dy[]={0,0,0,0,0,0,0,1,2,3,-1,-2,-3};
void turn_turn(int x,int y)
{
    if(a[x][y]=='-')
        a[x][y]='+';
    else a[x][y]='-';
}
void turn(int x,int y)
{
    o.push_back(x);
    p.push_back(y);
    for(int i=0;i<13;i++)
    {
        int e=x+dx[i];
        int f=y+dy[i];
        if((e>=1&&e<=4)&&(f>=1&&f<=4))
        {
            turn_turn(e,f);
        }
    }
}
void zhuanhuan(int i)
{
    switch(i)
    {
        case 0:turn(1,1);break;
        case 1:turn(1,2);break;
        case 2:turn(1,3);break;
        case 3:turn(1,4);break;
        case 4:turn(2,1);break;
        case 5:turn(2,2);break;
        case 6:turn(2,3);break;
        case 7:turn(2,4);break;
        case 8:turn(3,1);break;
        case 9:turn(3,2);break;
        case 10:turn(3,3);break;
        case 11:turn(3,4);break;
        case 12:turn(4,1);break;
        case 13:turn(4,2);break;
        case 14:turn(4,3);break;
        case 15:turn(4,4);break;
    }
}
int main()
{
    int res=-1;
    for(int i=1;i<=4;i++)
        for(int j=1;j<=4;j++)
        {
            cin>>a[i][j];
        }
        memcpy(b,a,sizeof a);
    for(long long int op=0;op<65536;op++)
    {
        int step=0;
        for(int i=0;i<16;i++)
        {
            if(op>>i&1)
            {
                zhuanhuan(i);
                step++;
            }
        }
        bool kai=true;
        for(int i=1;i<=4;i++)
        {
            for(int j=1;j<=4;j++)
            {
                if(a[i][j]=='+')
                {   
                    kai=false;
                }
            }
        }
        if(kai&&res!=-1)
        {
            int temp=res;
            res=min(res,step);
            if(temp!=res)
            {
                O=o;
                P=p;
            }
        }
        else if(kai&&res==-1)
        {
            res=step;
            O=o;
            P=p;
        }
        memcpy(a,b,sizeof a);
        o.clear();
        p.clear();
    }
    if(res!=-1)
    {
        cout<<res<<endl;
        for(int i=0;i<O.size();i++)
        {
            cout<<O[i]<<" "<<P[i]<<endl;
        }
    }
    return 0;
}


活动打卡代码 AcWing 95. 费解的开关

djdsn1565
28天前
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int n;
char b[6][6];
char c[6][6];
int dx[]={-1,0,1,0,0};
int dy[]={0,0,0,1,-1};

void turn(int x,int y)
{
    for(int i=0;i<5;i++)
    {
        int e=x+dx[i];
        int f=y+dy[i];
        if(e>4||f>4||e<0||f<0)
            continue;
        if(b[e][f]=='1')
            b[e][f]='0';
        else b[e][f]='1';
    }
}

int main()
{
    cin>>n;
    for(int k=1;k<=n;k++)
    {
        int res=10;
        for(int i=0;i<5;i++)
            for(int j=0;j<5;j++)
                cin>>b[i][j];
        for(int op=0;op<32;op++)
        {   
            int step=0; 
            memcpy(c,b,sizeof(b));
            for(int i=0;i<5;i++)
            {
                if(op>>i&1)
                {
                    turn(0,i);
                    step++;
                }
            }
            for(int i=0;i<4;i++)
            {
                for(int j=0;j<5;j++)
                {
                    if(b[i][j]=='0')
                    {
                        turn(i+1,j);
                        step++;
                    }
                }
            }
            bool dark=false;
            for(int i=0;i<5;i++)
            {
                if(b[4][i]=='0')
                {
                    dark=true;
                    break;
                }
            }
            if(!dark&&step<=6)
            {
                res=min(res,step);
            }
            memcpy(b,c,sizeof(b));
        }
        if(res<=6)
            cout<<res<<endl;
        else cout<<-1<<endl;
    }
    return 0;
}



djdsn1565
30天前
#include<iostream>
using namespace std;
int main()
{
    int n;
    int jige=0;
    int youxiu=0;
    cin>>n;
    int t;
    for(int i=1;i<=n;i++)
    {
        cin>>t;
        if(t>=85)
        {
            jige++;
            youxiu++;
        }
        else if(t>=60&&t<85)
        {
            jige++;
        }
    }
    float jigelv=(float)jige/n;
    float youxiulv=(float)youxiu/n;
    jigelv=jigelv*100;
    youxiulv=youxiulv*100;
    int t1,t2;
    if(jigelv-(int)jigelv>=0.5)
        t1=jigelv+1;
    else t1=jigelv;
    if(youxiulv-(int)youxiulv>=0.5)
        t2=youxiulv+1;
    else t2=youxiulv;
    cout<<t1<<"%"<<endl<<t2<<"%";
    return 0;
}




djdsn1565
30天前
#include<iostream>
using namespace std;
int a[30];
int n,m;
void dfs(int u,int start)
{
    if(u==m+1)
    {
        for(int i=1;i<=m;i++)
        {
            cout<<a[i]<<" ";
        }
        cout<<endl;
        return;
    }
    for(int i=start;i<=n;i++)
    {
        a[u]=i;
        dfs(u+1,i+1);
        a[u]=0;
    }
}
int main()
{
    cin>>n>>m;
    dfs(1,1);
    return 0;
} 


活动打卡代码 AcWing 790. 数的三次方根

djdsn1565
1个月前
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int main()
{
    double n;
    cin>>n;
    double l=-10000;
    double r=10000;
    double mid=(l+r)/2 ;
    while(r-l>1e-8)
    {
        if(pow(mid,3)>n)
            r=mid;
        else l=mid;
        mid=(l+r)/2;
    }
    printf("%.6lf",mid);
    return 0;    
}