头像

lamentropetion




离线:14小时前


最近来访(2)
用户头像
Snow_raw
用户头像
天元之弈

活动打卡代码 AcWing 1290. 越狱

//这里填你的代码^^
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int mod=1e5+3;
int m,n;
int ksm(int a,int b,int mod){
    int res=1;
    while(b>0){
        if(b&1) res=(res*a)%mod;
        a=(a*a)%mod;
        b>>=1;
    }
    return res;
}
signed main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    cin>>m>>n;
    cout<<(ksm(m,n,mod)-(m*ksm(m-1,n-1,mod)%mod)+mod)%mod<<'\n';
}
//注意代码要放在两组三个点之间,才可以正确显示代码高亮哦~



//这里填你的代码^^
#include <bits/stdc++.h>
using namespace std;
const int mod=200907;
#define int long long
int a,b,c,k,d,q;
int ksm(int a,int b,int mod){
    int res=1;
    while(b>0){
        if(b&1) res=(res*a)%mod;
        a=(a*a)%mod;
        b>>=1;
    }
    return res;
}
void solve(){
    cin>>a>>b>>c>>k;
    if(2*b==a+c){
        d=b-a;
        cout<<(a+(k-1)*d)%mod<<'\n';
    }else if(b*b==a*c){
        q=b/a;
        cout<<(a*ksm(q,k-1,mod))%mod<<'\n';
    }
}
signed main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    int T=1;
    cin>>T;
    while(T--)solve();
    return 0;
}
//注意代码要放在两组三个点之间,才可以正确显示代码高亮哦~


活动打卡代码 AcWing 1294. 樱花

//这里填你的代码^^
#include <bits/stdc++.h>
using namespace std;
const int mxn=1e6+10,mod=1e9+7;
#define int long long
int n,len=0,ans=1;
int prime[mxn],vis[mxn];
void init(int n){
    for(int i=2;i<=n;i++){
        if(!vis[i]) prime[++len]=i;
        for(int j=1;i*prime[j]<=n;j++){
            vis[i*prime[j]]=1;
            if(i%prime[j]==0) break;
        }
    }
}
signed main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    cin>>n;
    init(n);
    //cout<<len<<'\n';
    for(int i=1;i<=len;i++){
        int p=prime[i];
        int res=0;
        for(int j=n;j;j/=p) res+=(j/p);
        ans=(ans*(2*res+1))%mod;
    }
    cout<<ans<<'\n';
}
//注意代码要放在两组三个点之间,才可以正确显示代码高亮哦~


活动打卡代码 AcWing 1291. 轻拍牛头

//这里填你的代码^^
#include <bits/stdc++.h>
using namespace std;
const int mxn=1e5+10,mxv=1e6+10;
int n;
int a[mxn],mp[mxv],b[mxv];
int main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    cin>>n;
    for(int i=1;i<=n;i++) cin>>a[i],mp[a[i]]++;
    for(int i=1;i<mxv;i++){
        if(!mp[i]) continue;
        for(int j=i;j<mxv;j+=i){
            b[j]+=mp[i];
        }
    }
    for(int i=1;i<=n-1;i++) cout<<b[a[i]]-1<<'\n';
    cout<<b[a[n]]-1<<'\n';
}
//注意代码要放在两组三个点之间,才可以正确显示代码高亮哦~


活动打卡代码 AcWing 197. 阶乘分解

//这里填你的代码^^
#include <bits/stdc++.h>
using namespace std;
const int mxn=1e6+10;
int n,len=0;
int prime[mxn],vis[mxn];
void init(int n){
    for(int i=2;i<=n;i++){
        if(!vis[i]) prime[++len]=i;
        for(int j=1;i*prime[j]<=n;j++){
            vis[i*prime[j]]=1;
            if(i%prime[j]==0) break;
        }
    }
}
int main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    cin>>n;
    init(n);
    for(int i=1;i<=len;i++){
        int p=prime[i];
        int res=0;
        for(int j=n;j;j/=p) res+=j/p;
        cout<<p<<" "<<res<<'\n';
    }
}
//注意代码要放在两组三个点之间,才可以正确显示代码高亮哦~


活动打卡代码 AcWing 1116. 马走日

//这里填你的代码^^
#include <bits/stdc++.h>
using namespace std;
const int mxn=30;
int n,m,sx,sy,cnt=0,ans=0;
int dx[8]={-2,-1,1,2,2,1,-1,-2},dy[8]={-1,-2,-2,-1,1,2,2,1};
int vis[mxn][mxn];
bool check(int x,int y){
    return x>=0&&x<n&&y>=0&y<m;
}
void dfs(int x,int y,int dep){
    //cout<<x<<" "<<y<<'\n';
    if(dep==n*m){
        ans++;
        return;
    }
    for(int i=0;i<8;i++){
        int vx=x+dx[i],vy=y+dy[i];
        if(!check(vx,vy)) continue;
        if(vis[vx][vy]) continue;
        vis[vx][vy]=1;
        dfs(vx,vy,dep+1);
        vis[vx][vy]=0;
    }
}
void init(){
    cnt=ans=0;
    memset(vis,0,sizeof(vis));
}
void solve(){
    init();
    cin>>n>>m>>sx>>sy;
    vis[sx][sy]=1;
    dfs(sx,sy,1);
    cout<<ans<<'\n';
}
int main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    int T=1;
    cin>>T;
    while(T--)solve();
    return 0;
}
//注意代码要放在两组三个点之间,才可以正确显示代码高亮哦~


活动打卡代码 AcWing 1113. 红与黑

//这里填你的代码^^
#include <bits/stdc++.h>
using namespace std;
const int mxn=22;
int n,m,sx,sy,ans=0;
int dx[4]={-1,0,1,0},dy[4]={0,-1,0,1};
int vis[mxn][mxn];
char s[mxn][mxn];
bool check(int x,int y){
    return x>=1&&x<=n&&y>=1&&y<=m;
}
void dfs(int x,int y){
    ans++;
    for(int i=0;i<4;i++){
        int vx=x+dx[i],vy=y+dy[i];
        if(!check(vx,vy)) continue;
        if(s[vx][vy]=='#') continue;
        if(vis[vx][vy]) continue;
        vis[vx][vy]=1;
        dfs(vx,vy);
    }
}
void init(){
    ans=0;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++) vis[i][j]=0;
    }
}
int main(){
    //ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    while(scanf("%d%d",&m,&n)==2){
        if(n==0&&m==0) break;
        init();
        getchar();
        for(int i=1;i<=n;i++){
            for(int j=1;j<=m;j++){
                scanf("%c",&s[i][j]);
                if(s[i][j]=='@') sx=i,sy=j;
            }
            getchar();
        }
        vis[sx][sy]=1;
        dfs(sx,sy);
        cout<<ans<<'\n';
    }
    return 0;
}
//注意代码要放在两组三个点之间,才可以正确显示代码高亮哦~



//这里填你的代码^^
#include <bits/stdc++.h>
using namespace std;
const int mxn=1e3+10,mod=1e9+7;
int n,V;
int v[mxn],w[mxn],dp[mxn][mxn],g[mxn][mxn];
int main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    cin>>n>>V;
    for(int i=1;i<=n;i++) cin>>v[i]>>w[i];
    for(int i=1;i<=n;i++){
        for(int j=0;j<=V;j++){
            dp[i][j]=dp[i-1][j];
            if(j>=v[i]) dp[i][j]=max(dp[i-1][j],dp[i-1][j-v[i]]+w[i]);
        }
    }
    g[0][0]=1;
    for(int i=1;i<=n;i++){
        for(int j=0;j<=V;j++){
            if(dp[i][j]==dp[i-1][j]) g[i][j]=(g[i][j]+g[i-1][j])%mod;
            if(j>=v[i]&&dp[i][j]==dp[i-1][j-v[i]]+w[i]) g[i][j]=(g[i][j]+g[i-1][j-v[i]])%mod;
        }
    }
    int ans=0;
    for(int j=0;j<=V;j++){
        if(dp[n][V]==dp[n][j]){
            ans=(ans+g[n][j])%mod;
        }
    }
    cout<<ans<<'\n';
}
//注意代码要放在两组三个点之间,才可以正确显示代码高亮哦~



//这里填你的代码^^
#include <bits/stdc++.h>
using namespace std;
const int mxn=1e3+10;
vector<int> ans;
int n,V;
int v[mxn],w[mxn],dp[mxn][mxn];
int main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    cin>>n>>V;
    for(int i=1;i<=n;i++) cin>>v[i]>>w[i];
    for(int i=n;i>=1;i--){
        for(int j=0;j<=V;j++){
            dp[i][j]=dp[i+1][j];
            if(j>=v[i]) dp[i][j]=max(dp[i+1][j],dp[i+1][j-v[i]]+w[i]);
        }
    }
    int j=V;
    for(int i=1;i<=n;i++){
        if(j>=v[i]&&dp[i][j]==dp[i+1][j-v[i]]+w[i]){
            j-=v[i];
            ans.push_back(i);
        }
    }
    for(int i=0;i<ans.size()-1;i++) cout<<ans[i]<<" ";
    cout<<ans[ans.size()-1]<<'\n';
}
//注意代码要放在两组三个点之间,才可以正确显示代码高亮哦~


活动打卡代码 AcWing 426. 开心的金明

//这里填你的代码^^
#include <bits/stdc++.h>
using namespace std;
const int mxn=3e4+10;
int n,m;
int v[mxn],w[mxn],dp[mxn];
int main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    cin>>m>>n;
    for(int i=1;i<=n;i++) cin>>v[i]>>w[i];
    for(int i=1;i<=n;i++){
        for(int j=m;j>=v[i];j--){
            dp[j]=max(dp[j],dp[j-v[i]]+v[i]*w[i]);
        }
    }
    cout<<dp[m]<<'\n';
}
//注意代码要放在两组三个点之间,才可以正确显示代码高亮哦~