Codeforces Round #381 (Div. 2)

这次比赛,两个队友一起在机房做,还叫了外卖来机房,边喝啤酒边吃烧烤边做题,很爽。
——
第一题:
你有N个东西
买一个东西要花 A元钱
两个要B
三个要C
问至少花多少钱把东西凑成4的倍数
——
一开始想的是先把最便宜的找到,也就是6A 3B 2C那个小,按顺序买
不过下去拿烧烤的时候我们讨论了一下,发现这样想法不对
比如说买2个可能比买6个贵
——
于是我想用完全背包找个最小的,不过不知道范围。
又一个队友说,其实就是多考虑几种情况就好了。
于是我就找了12以下的最优解。
AC
——
第二题:
超水,就是一个前缀和,不说了
——
第三题:
一开始看不懂,百度了还是看不懂,后来一个队友说看题就好了,然后就看懂了。
题目说mex()函数
这个函数是什么鬼?本来想matlab help一下的,结果是另外的东西。
第二天我一看书,发现我原来是知道的,就是Nim游戏里面需要的那个函数。不过我早就忘了。
现在再来说下mex函数是什么
就是一个集合,从0开始1 2 3第一个没出现的正整数,就是mex函数的值
题目首先输入n, m
表示n个数 m个区间
构造一个数列,使这m个区间里 mex函数最小的那个最大
只需要构造一个数列就好
i.e. special judge的题
——
现在问题来了,任意一个集合的mex值最大是多少?
size() + 1
那么ans会不是min(r - l) + 1呢?
应该是,只需要把 l ~ r 区间填上 0 ~ (r - l)就好了
然后别的区间怎么构造呢?
比赛的时候就没想到了。
想到了一个,还是WA了。我还交了两发。
然后比赛就结束了。
CF一个好处就是可以看所有人的代码和测试数据。
然后我一看一个?
怎么TM的这么短?
假设ans是3
直接
0 1 2 0 1 2 0 1 2就好了
怎么证明呢?
显然任意一端区间的长度都是大于等于ans - 1
然后这里面所有大于ans的区间都只有 0 1 2 Mex = 3
证毕。
——
这次还是负分 尬尴
第一题:

#define LOG(x) cout << #x << " = " << (x) << endl
#define PRINTLN(x) cout << (x) << endl
#define MEM(x, y) memset((x), (y), sizeof((x)))
#include <bits/stdc++.h>
using namespace std;
const double PI = 2*acos(0);
typedef long long ll;
typedef complex<double> Complex;
typedef pair<ll, int> P;
int nextInt()
{
  int x;
  scanf("%d", &x);
  return x;
}
ll nextLL()
{
  ll x;
  scanf("%lld", &x);
  return x;
}
//TEMPLATE
 
//MAIN
ll n;
 
void solve()
{
  ll a[3];
  for (int i = 0; i < 3; i++) {
    a[i] = nextLL();
  }
  ll dp[13];
  MEM(dp, -1);
  dp[0] = 0;
  for (int i = 0; i < 3; i++) {
    for (int j = 0; j <= 12 - (i + 1); j++) {
      if (dp[j + (i + 1)] == -1) dp[j + (i + 1)] = a[i] + dp[j]; else
      dp[j + (i + 1)] = min(dp[j + (i + 1)], dp[j] + a[i]);
    }
  }
  if (n % 4 == 0) {
    cout << 0 << endl;
    return;
  }
  int s = 4 - n % 4;
  ll ans = min(dp[s], min(dp[s + 4], dp[s + 8]));
  cout << ans << endl;
}
int main()
{
  //freopen("in.txt", "r", stdin);
  while (scanf("%lld", &n) != EOF) {
    solve();
  }
}

第二题

#define LOG(x) cout << #x << " = " << (x) << endl
#define PRINTLN(x) cout << (x) << endl
#define MEM(x, y) memset((x), (y), sizeof((x)))
#include <bits/stdc++.h>
using namespace std;
const double PI = 2*acos(0);
typedef long long ll;
typedef complex<double> Complex;
int nextInt()
{
  int x;
  scanf("%d", &x);
  return x;
}
ll nextLL()
{
  ll x;
  scanf("%lld", &x);
  return x;
}
//TEMPLATE
 
//MAIN
const int MAXN = 1000;
int a[MAXN], s[MAXN];
int main()
{
  //freopen("in.txt", "r", stdin);
  int n, m;
  while (scanf("%d%d", &n, &m) != EOF) {
    MEM(a, 0);
    MEM(s, 0);
    for (int i = 1; i <= n; i++) {
      a[i] = nextInt();
    }
    for (int i = 1; i <= n; i++) {
      s[i] = s[i - 1] + a[i];
    }
    ll ans = 0;
    for (int i = 0; i < m; i++) {
      int l = nextInt(), r = nextInt();
      ans += (s[r] - s[l - 1] > 0 ? s[r] - s[l - 1] : 0);
    }
    cout << ans << endl;
  }
}

第三题

#define LOG(x) cout << #x << " = " << (x) << endl
#define PRINTLN(x) cout << (x) << endl
#define MEM(x, y) memset((x), (y), sizeof((x)))
#include <bits/stdc++.h>
using namespace std;
const double PI = 2*acos(0);
const int INF = INT_MAX;
typedef long long ll;
typedef complex<double> Complex;
int nextInt()
{
  int x;
  scanf("%d", &x);
  return x;
}
ll nextLL()
{
  ll x;
  scanf("%lld", &x);
  return x;
}
//TEMPLATE
 
//MAIN
int main()
{
  //freopen("in.txt", "r", stdin);
  int n = nextInt(), m = nextInt();
  int ans = INF;
  for (int i = 0; i < m; i++) {
    int l = nextInt(), r = nextInt();
    ans = min(ans, r - l);
  }
  ans++;
  cout << ans << endl;
  cout << 0;
  for (int i = 1; i < n; i++) {
    cout << ' ' << i % ans;
  }
  cout << endl;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值