第十三届蓝桥杯国赛大学B组填空题(c++)

 A.2022

动态规划 AC;

#include<iostream>
#define int long long
using namespace std;
int dp[2050][15];
//dp[i][j]:把数字i分解为j个不同的数的方法数
signed main(){
    dp[0][0]=1;
    for(int i=1;i<=2022;i++){
        for(int j=1;j<=10;j++){
            //一种是已经分成j个数,这时只需每一个数+1就可以得到
            //另一种是已经分成j-1个数,这时只需添加一个大小为j的数就可以得到
            //注意数组越界
            if(i-j>=0) dp[i][j]=dp[i-j][j]+dp[i-j][j-1];
        }
    }
    cout<<dp[2022][10]<<endl;
    //cout<<379187662194355221<<endl;
    return 0;
}

B.钟表 

模拟 AC: 

#include<iostream>
#define int long long
using namespace std;
const double exp=1e-6;
int s,f,m;
signed main(){
    for(s=0;s<=6;s++){
        for(f=0;f<60;f++){
            for(m=0;m<60;m++){
                if(s==0&&f==0&&m==0) continue;
                double ss=30.0*s+f/2.0+m/120.0;
                double ff=6.0*f+m/10.0;
                double mm=6.0*m;
                double A=abs(ss-ff);A=min(A,360.0-A);
                double B=abs(ff-mm);B=min(B,360.0-B);
                if(abs(A-2*B)<=exp) cout<<s<<" "<<f<<" "<<m<<endl;
            }
        }
    }
    return 0;
}

补:出差

手动模拟 AC:

/*
4个人选2个(共6种情况)
1 2 ×
1 3 √
1 4 √
2 3 ×
2 4 √
3 4 ×
*/
#include<iostream>
using namespace std;
int main(){
    cout<<"A C"<<endl;
    cout<<"A D"<<endl;
    cout<<"B D"<<endl;
    return 0;
}
  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值