头像

haimo

lgvc txdy!




离线:1天前


最近来访(150)
用户头像
Allah
用户头像
种花家的兔兔
用户头像
bxnya_miana
用户头像
DreamNotFind
用户头像
Time_Keeper
用户头像
种花家的市长
用户头像
kkksc007
用户头像
163.com
用户头像
吴百强2022
用户头像
hncsxzx
用户头像
18510653307
用户头像
辣鸡号航母
用户头像
hehe625
用户头像
int233
用户头像
太雪菜
用户头像
zeng9999jian
用户头像
stOtue
用户头像
V1
用户头像
垫底抽風
用户头像
pluto._77

活动打卡代码 AcWing 898. 数字三角形

haimo
17天前
#include<bits/stdc++.h>
using namespace std;
const int N=505;
int a[N][N];
int n;
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=i;j++)
            scanf("%d",a[i]+j);
    for(int i=n-1;i>=1;i--)
        for(int j=1;j<=i;j++)
            a[i][j]+=max(a[i+1][j],a[i+1][j+1]);
    printf("%d",a[1][1]);
    return 0;
}


活动打卡代码 AcWing 891. Nim游戏

haimo
20天前
#include<bits/stdc++.h>
using namespace std;
int main(){
    int n;
    cin>>n;
    int res=0;
    while(n--){
        int x;
        cin>>x;
        res^=x;
    }
    if(res) puts("Yes");
    else puts("No");
}


活动打卡代码 AcWing 875. 快速幂

haimo
20天前
#include<bits/stdc++.h>
#define ll long long
using namespace std;
int qmi(int a,int b,int p){
    int ans=1;
    while(b){
        if(b&1) ans=(long long)ans*a%p;
        b>>=1;
        a=(long long)a*a%p;
    }
    return ans;
}
int main(){
    int n;
    cin>>n;
    while(n--){
        int a,b,p;
        cin>>a>>b>>p;
        auto ans=qmi(a,b,p);
        printf("%d\n",ans);
    }
}


活动打卡代码 AcWing 842. 排列数字

haimo
30天前
#include<bits/stdc++.h>
using namespace std;
const int N=25;
int a[N];
bool st[N];
int n;
void dfs(int depth){
    if(depth==n+1){
        for(int i=1;i<=n;i++)
            printf("%d ",a[i]);
        puts("");
    }
    for(int i=1;i<=n;i++){
        if(!st[i]){
            a[depth]=i;
            st[i]=true;
            dfs(depth+1);
            st[i]=false;
        }
    }
}
int main(){
    cin>>n;
    dfs(1);
    return 0;
}


新鲜事 原文

haimo
1个月前
AcWing《AC Saber第二届秋季赛》拼团优惠!https://www.acwing.com/activity/content/introduction/2251/group_buy/86477/


活动打卡代码 AcWing 854. Floyd求最短路

haimo
1个月前
#include<bits/stdc++.h>
using namespace std;
const int N=205;
int d[N][N];
int n,m,q;
const int INF=1e9;
void floyd(){
    for(int k=1;k<=n;k++)
        for(int i=1;i<=n;i++)
            for(int j=1;j<=n;j++)
                d[i][j]=min(d[i][j],d[i][k]+d[k][j]);
}
int main(){
    cin>>n>>m>>q;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)
            if(i==j) d[i][j]=0;
            else d[i][j]=INF;
    while(m--){
        int a,b,c;
        cin>>a>>b>>c;
        d[a][b]=min(d[a][b],c);
    }
    floyd();
    while(q--){
        int x,y;
        cin>>x>>y;
        if(d[x][y]>INF/2) puts("impossible");
        else printf("%d\n",d[x][y]);
    }
    return 0;
}



haimo
1个月前
#include<bits/stdc++.h>
using namespace std;
const int N=505;
int g[N][N];
int dist[N];
bool st[N];
int n,m;
int dijkstra(){
    memset(dist,0x3f,sizeof dist);
    dist[1]=0;
    for(int i=1;i<n;i++){
        int t=-1;
        for(int j=1;j<=n;j++)
            if(!st[j]&&(t==-1||dist[t]>dist[j])) t=j;
        st[t]=true;
        for(int j=1;j<=n;j++)
            dist[j]=min(dist[j],dist[t]+g[t][j]);
    }
    if(dist[n]==0x3f3f3f3f) return -1;
    else return dist[n];
}
int main(){
    cin>>n>>m;
    memset(g,0x3f,sizeof g);
    while(m--){
        int a,b,c;
        cin>>a>>b>>c;
        g[a][b]=min(g[a][b],c);
    }
    int ans=dijkstra();
    cout<<ans;
}



haimo
1个月前
#include<bits/stdc++.h>
using namespace std;
const int N=505;
const int INF=0x3f3f3f3f;
int g[N][N];
int dist[N];
bool st[N];
int n,m;
int prim(){
    memset(dist,0x3f,sizeof dist);
    int res=0;
    for(int i=0;i<n;i++){
        int t=-1;
        for(int j=1;j<=n;j++)
            if(!st[j]&&(t==-1||dist[t]>dist[j])) t=j;
        if(i&&dist[t]==INF) return INF;
        if(i) res+=dist[t];
        for(int j=1;j<=n;j++)
            dist[j]=min(dist[j],g[t][j]);
        st[t]=true;
    }
    return res;
}
int main(){
    cin>>n>>m;
    memset(g,0x3f,sizeof g);
    while(m--){
        int a,b,c;
        cin>>a>>b>>c;
        g[a][b]=g[b][a]=min(g[a][b],c);
    }
    int ans=prim();
    if(ans==INF) cout<<"impossible";
    else cout<<ans;
}


活动打卡代码 AcWing 4. 多重背包问题

haimo
1个月前
#include<bits/stdc++.h>
#define INF 2147483647
using namespace std;
const int N=505,M=6005;
int f[M];
inline int read(){
    int now=0,nev=1;char c=getchar();
    while(c<'0'||c>'9')if(c=='-'){nev=-1;c=getchar();}
    while(c>='0'&&c<='9'){now=(now<<3)+(now<<1)+(c&15);c=getchar();}
    return now*nev;
}
int n,m,v,w,s;
int main()
{
    n=read(),m=read();
    for(int i=1;i<=n;i++){
        cin>>v>>w>>s;
        for(int j=m;j>=0;j--)
            for(int k=1;k<=s&&k*v<=j;k++)
                f[j]=max(f[j],f[j-k*v]+k*w);
    }
    cout<<f[m];
    return 0;
}


活动打卡代码 AcWing 3. 完全背包问题

haimo
1个月前

AcWing 3

#include<bits/stdc++.h>
using namespace std;
const int N=1005;
int f[N],v[N],w[N];
int n,m;
int main(){
    cin>>n>>m;
    for(int i=1;i<=n;i++)
        scanf("%d%d",v+i,w+i);
    for(int i=1;i<=n;i++)
        for(int j=v[i];j<=m;j++)
            f[j]=max(f[j],f[j-v[i]]+w[i]);
    cout<<f[m];
}