补题记录牛客

牛客~第五届SCPC中南民族大学程序设计竞赛(同步赛)(重现赛)

D.SCPC

题目链接:D-S CPC_第五届SCPC中南民族大学程序设计竞赛(同步赛)(重现赛)@XuSihan (nowcoder.com)

#include<iostream>
#include<cstring>
#include<algorithm>
#include<queue>
using namespace std;
typedef pair<int,int> PII;
const int N = 1e5+10;
 
int main()
{
    int t;
    cin >> t;
    while(t -- )
    {
        int n;
        cin >> n;
        if(n >= 7 && n%2 == 1) cout << "A" << endl;
        else if(n >= 15 && n%2 == 0) cout << "B" << endl;
        else cout << "draw" << endl; 
    }
}

G.小白要写小白题

题目链接:G-小白要写小白题_第五届SCPC中南民族大学程序设计竞赛(同步赛)(重现赛)@XuSihan (nowcoder.com)

#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
#define int long long
using namespace std;
int s[10]={0,1,2,3,4,5,6,7,8,9};
const int N=101;
int a[N],b[N],c[N],x[N],y[N];
signed main()
{
    int n,t,p,f=1,ans=0,sum=0,maxx=0;
    cin>>n>>t>>p;
    for(int i=1;i<=n;i++)
        cin>>a[i]>>b[i]>>c[i]>>x[i]>>y[i];
    do
    { 
          int ts=0;
          sum=0,ans=0;
         for(int i=1;i<=n;i++)
        {
        	int k = s[i];
            if(ts+x[k]<=t)
            {
            ts+=x[k];
            ans+=max(c[k],a[k]-ts*b[k]-y[k]*p);
            }   
         }
        maxx=max(maxx,ans);
    }
    while(next_permutation(s+1,s+n+1));//全排列   也可以用dfs来进行排列
    cout<<maxx<<endl;
    return 0;
}

I.CSGO

题目链接:I-CSGO_第五届SCPC中南民族大学程序设计竞赛(同步赛)(重现赛)@XuSihan (nowcoder.com)

#include<bits/stdc++.h>
using namespace std;
#define x first
#define y second
#define endl '\n'
typedef long long ll;
const int mod=998244343;
typedef pair<int,int> PII;
typedef pair<int,PII> PIII;
#define int long long 
 
const int N=1e5+100;
int a[N];
int n,m;
 
bool check(int x)
{
  vector<int> v;
  for(int i = 1;i<=n;i++) 
          v.push_back(a[i]+x*i);
  int sum=0;
  sort(v.begin(),v.end());
  for(int i = 0;i<x;i++)sum+=v[i];
 
  if(sum>m)return 0;
  else return 1;
}
 
void solve()
{
  cin>>n>>m;
  for(int i = 1;i<=n;i++) cin>>a[i];
 
  int l=0,r=n;
  while(l<r)
  {
    int m = (l+r+1)/2;
    if(check(m)) l=m;
    else r=m-1;
  }
  cout<<l;
}
 
signed main()
{
    std::ios::sync_with_stdio(false);std::cin.tie(0);std::cout.tie(0);
    solve();
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值