头像

include_c




离线:1天前


最近来访(39)
用户头像
党梦竹
用户头像
寻_0
用户头像
一无所知的产物
用户头像
寄寄寄寄摆摆摆摆摆
用户头像
Ee_01
用户头像
hhhh_1
用户头像
涼風青葉
用户头像
小郑同学
用户头像
acwing_gza
用户头像
Skuy
用户头像
纵横
用户头像
diandian2020
用户头像
爱算法爱生活
用户头像
zzc
用户头像
平衡树
用户头像
include_BM
用户头像
Noe1017
用户头像
xtxxueyan
用户头像
CruiseY
用户头像
封禁用户


include_c
10天前

RT



活动打卡代码 AcWing 97. 约数之和

include_c
2个月前
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int mod=9901;

long long qpow(long long a,long long b){
    long long ans=1;
    for(;b;b>>=1){
        if(b&1)ans=(ans*a)%mod;
        a=a*a;a%=mod;
    }
    return ans;
}
long long dfs(long long a,long long b){
    if(b==0)return 1;
    if(b&1){
        return ((1+qpow(a,(b+1)>>1))*dfs(a,(b-1)>>1))%mod;
    }else{
        return ((1+qpow(a,b>>1))*dfs(a,(b>>1)-1)+qpow(a,b))%mod;
    }
}
long long pr(int a,int b){
    long long ans=1;
    for(int i=2;i<=a;i++){
        if(a%i==0){
            int k=0;
            while(a%i==0){
                a/=i;k++;
            }
            ans*=(dfs(i,b*k));ans%=mod;
        }
    }
    //if(a>1)ans*=(dfs(a,b));ans%=mod;
    return ans;
}
int main()
{
    int a,b;cin>>a>>b;
    if(a==0)cout<<0;
    else cout<<pr(a,b);
    return 0;
}



include_c
2个月前
#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>
using namespace std;
int n;vector<int>a;
bool vis[11];
void dfs(int i){
    if(i>n){
        for(auto k:a)printf("%d ",k);
        printf("\n");
        return ;
    }
    for(int ii=1;ii<=n;ii++){
        if(vis[ii])continue;
        vis[ii]=1;
        a.push_back(ii);
        dfs(i+1);
        a.pop_back();vis[ii]=0;
    }

}
int main()
{
    scanf("%d", &n);
    dfs(1);
    return 0;
}



include_c
2个月前
#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>
using namespace std;
int n,m;vector<int>a;
void dfs(int i,int j){
    if(i>n){
        if(a.size()<m)return ;
        for(auto k:a)printf("%d ",k);
        printf("\n");
        return ;
    }
    if(j<m){
        a.push_back(i);
        dfs(i+1,j+1);
        a.pop_back();
        dfs(i+1,j);
    }else{
        dfs(i+1,j);
    }
}
int main()
{
    scanf("%d%d", &n, &m);
    dfs(1,0);
    return 0;
}



include_c
2个月前
#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>
using namespace std;
int n;vector<int>a;
void dfs(int i){
    if(i>n){
        for(auto k:a)printf("%d ",k);
        printf("\n");
        return ;
    }
    a.push_back(i);
    dfs(i+1);
    a.pop_back();
    dfs(i+1);
}
int main()
{
    cin>>n;
    dfs(1);
    return 0;
}



include_c
2个月前
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int n,m;
struct node{
    string a;
    int b;
}s[100010];
int calc(int now,int bit){
    for(int i=1;i<=n;i++){
        int noe=s[i].b>>bit&1;
        if(s[i].a=="AND")now&=noe;
        else if(s[i].a=="OR")now|=noe;
        else now^=noe;
    }
    return now;
}
int main()
{
    scanf("%d%d",&n,&m);
    for(int i=1;i<=n;i++){
        cin>>s[i].a;
        scanf("%d", &s[i].b);
    }
    int val=0,ans=0;
    for(int i=29;i>=0;i--){
        int r1=calc(0,i);
        int r2=calc(1,i);
        if(val+(1<<i)<=m&&r1<r2){
            val+=1<<i;ans+=r2<<i;
        }else{
            ans+=r1<<i;
        }

    }printf("%d\n",ans);
    return 0;
}


活动打卡代码 AcWing 275. 传纸条

include_c
2个月前
#include<bits/stdc++.h>
using namespace std;
int n,m,a[60][60],f[110][60][60];
int main(){
    scanf("%d%d",&n,&m);
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
            scanf("%d",&a[i][j]);
    for(int k=2;k<=m+n;k++){
        for(int i=1;i<k;i++){
            for(int i2=1;i2<k;i2++){
                int j=k-i,j2=k-i2;
                if(j<1||j>m||j2<1||j2>m)continue;
                int &x=f[k][i][i2];
                int t=a[i][j];
                if(i!=i2)t+=a[i2][j2];
                x=max(x,f[k-1][i-1][i2-1]+t);
                x=max(x,f[k-1][i][i2-1]+t);
                x=max(x,f[k-1][i-1][i2]+t);
                x=max(x,f[k-1][i][i2]+t);
            }
        }
    }
    printf("%d",f[m+n][n][n]);
    return 0;
}



include_c
2个月前
#include<bits/stdc++.h>
using namespace std;
const int N=3100;
int n,a[N],b[N],f[N][N],ans;
int main(){
    scanf("%d",&n);
    for(int i=1;i<=n;i++)scanf("%d",&a[i]);
    for(int i=1;i<=n;i++)scanf("%d",&b[i]);
    for(int i=1;i<=n;i++){
        int maxn=1;
        for(int j=1;j<=n;j++){
            f[i][j]=f[i-1][j];
            if(a[i]==b[j])f[i][j]=max(f[i][j],maxn);
            if(a[i]>b[j])maxn=max(maxn,f[i-1][j]+1);
        }
    }
    for(int i=1;i<=n;i++)ans=max(ans,f[n][i]);
    printf("%d",ans);
    return 0;
}



include_c
2个月前
#include<bits/stdc++.h>
using namespace std;
const int N=3100;
int n,a[N],b[N],f[N][N],ans;
int main(){
    scanf("%d",&n);
    for(int i=1;i<=n;i++)scanf("%d",&a[i]);
    for(int i=1;i<=n;i++)scanf("%d",&b[i]);
    for(int i=1;i<=n;i++){
        int maxn=1;
        for(int j=1;j<=n;j++){
            f[i][j]=f[i-1][j];
            if(a[i]==b[j])f[i][j]=max(f[i][j],maxn);
            if(a[i]>b[j])maxn=max(maxn,f[i-1][j]+1);
        }
    }
    for(int i=1;i<=n;i++)ans=max(ans,f[n][i]);
    printf("%d",ans);
    return 0;
}



include_c
2个月前
#include<bits/stdc++.h>
using namespace std;
const int N=31;
int k;
long long f[N][N][N][N][N];
int main(){
    while(scanf("%d",&k),k){
        int s[5]={0};
        for(int i=0;i<k;i++)scanf("%d",&s[i]);
        memset(f,0,sizeof f);
        f[0][0][0][0][0]=1;
        for(int a=0;a<=s[0];a++){
            for(int b=0;b<=min(a,s[1]);b++){
                for(int c=0;c<=min(b,s[2]);c++){
                    for(int d=0;d<=min(d,s[3]);d++){
                        for(int e=0;e<=min(e,s[4]);e++){
                            long long &x=f[a][b][c][d][e];
                            if(a&&a-1>=b)x+=f[a-1][b][c][d][e];
                            if(b&&b-1>=c)x+=f[a][b-1][c][d][e];
                            if(c&&c-1>=d)x+=f[a][b][c-1][d][e];
                            if(d&&d-1>=e)x+=f[a][b][c][d-1][e];
                            if(e)x+=f[a][b][c][d][e-1];
                        }
                    }
                }
            }
        }
        printf("%lld\n",f[s[0]][s[1]][s[2]][s[3]][s[4]]);
    }
    return 0;
}