4 条题解

  • 9
    @ 2025-10-2 9:53:37

    这题的核心思路就是用题目的提示来判断能不能填充1 直接来看代码(此代码为不要三个一的目前最短代码 但不是最快的)

    #include<cstdio>
    char s[101];int n,m,a,i;
    main(){freopen("three.in","r",stdin);freopen("three.out","w",stdout);scanf("%d%d",&n,&m);for(i=0;i<n&&a<m;++i)if(i<2||!(s[i-1]=='1'&&s[i-2]=='1'))s[i]='1',a++;else s[i]='0';while(i<n)s[i++]='0';printf("%s",s);}
    
  • 1
    @ 2026-5-2 10:09:20
    #include <bits/stdc++.h>
    using namespace std;
    #define int long long
    const int N=210;
    int dp[N],a[N],n;
    signed main(void) {
    	ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
    	cin>>n;
    	for(int i=1;i<=n;i++){
    		cin>>a[i];
    	}
    	fill(dp,dp+n+1,0x3f3f3f3f3f3f3f3f);dp[1]=0;
    	for(int i=1;i<=n;i++){
    		if(a[i+1]==a[i]+1) dp[i+1]=min(dp[i+1],dp[i]+1);
    		for(int j=1;j<i;j++){
    			for(int k=i;k<=n;k++){
    				if(a[k]<=a[i-j]+(1ll<<j)) dp[k]=min(dp[k],dp[i]+j+1);
    			}
    		}
    	}
    	cout<<(dp[n]==0x3f3f3f3f3f3f3f3f?-1:dp[n])<<'\n';
    	return 0;
    }
    
    
    • -15
      @ 2025-12-1 16:39:51

      命令提示符炸服:ping -t -a -l 65500 -f 10.131.7.177

    • 1

    信息

    ID
    4487
    时间
    1000ms
    内存
    512MiB
    难度
    8
    标签
    (无)
    递交数
    651
    已通过
    96
    上传者