11.7正睿OI第八场模拟赛总结

真的恶心

购物(10分钟 100分)

(shop.cpp/c/pas)

【问题描述】

YJC最近在steam上氪了不少金,但他还想氪更多。

steam保证了不同的两款游戏的价格一定不同,并且游戏的价格一定是正整数。现在YJC已经买下了n不同的游戏,价格分别为a1、a2、...an。YJC手头还有m元,他想知道他最多还能入手多少款他没有的游戏?

【输入格式】

第一行包含两个整数nm,表示YJC已经买下的游戏数和YJC的钱数。

第二行包含n个整数ai,表示YJC已经入手的每一款游戏。

 

【输出格式】

 

第一行包含一个整数k,表示YJC最多还能买下多少款游戏

第二行包含k个整数bi,表示YJC接下来要买下的每一款游戏。如果有多组解,输出字典序最小的。

 

【输入输出样例】

 

shop.in

shop.out

4 14

4 6 8 12

4

1 2 3 5

 

【数据说明】

 

对于100%的数据,满足1≤n≤10^5,1≤m,ai≤10^9。

1≤m,ai≤10^9,ai太大只能用神奇的方法。设置一个下标k,并枚举价钱,如果价钱等于ak,则k++,否则处理价钱,这里输出非常坑爹,需要做两遍,一遍求可以买多少游戏,另一遍求买哪些游戏。

立方根(30分钟 30分)

(math.cpp/c/pas)

【问题描述】

YJC最近在学习无理数的近似值。现在他遇到这样一道题:给一个正整数n,求一个分母不超过m的最简分数p/q,使得|p/q-n^2/3|最小。YJC发现他不会做,所以来向你求助。

 

【输入格式】

 

第一行包含两个整数nm,意思如题所示。

 

【输出格式】

 

一行,包含一个最简分数,写成p/q的形式,表示求的这个最简分数。

 

【输入输出样例】

 

math.in

math.out

2 100000

153008/96389

 

【数据说明】

 

对于100%的数据,满足1≤n<2^31,1≤m≤10^5。

由于公式要求最小,则应使p/q与n^2/3最相近,枚举q(1-m)即可,这里要注意必须用long double,double被卡了70分的精度,强制类型转换的时候必须带上括号。

取石子(2小时 0分)

(nim.cpp/c/pas)

【问题描述】

YJC在和CJY玩取石子游戏。规则是这样的:有n堆石子,双方轮流操作,每次选择一堆石子进行操作,不能操作者负。操作有两种:从一堆取走一颗石子或将一个石子数为2x(x>0)的石子堆变成m堆石子数为x的石子堆。现在YJC抢到了先手,他想知道自己能不能赢。

 

【输入格式】

 

第一行包含两个整数nm,表示石子堆数和第二种操作的参数。

第二行包含n个整数ai,表示每一堆石子的数量。

【输出格式】

如果YJC胜利则输出YJC,否则输出CJY。

【输入输出样例】

 

nim.in

nim.out

3 3

2 2 3 

YJC

 

【数据说明】

 

对于30%的数据,满足n,m,ai<=3

对于100%的数据,满足1≤n≤10^5,1≤m,ai≤10^9。

P.S.本题使用捆绑测试,一个测试点包含多个测试数据。

刚开始看到觉得是贪心,然后用贪心杠了2小时……

结果因为这个捆绑测试爆0。这真的刺激微笑

最远点(50分钟 0分)

(graph.cpp/c/pas)

【问题描述】

YJC最近在学习图论。今天他在学习最远点。

最远点指在图的点上或边上的某一个点,满足这个点到图所有顶点的距离和最大。

现在YJC找了一张完全图,希望能算出它的最远点到图所有顶点的距离和。但他发现他不会算,所以他来找你帮忙。

 

【输入格式】

 

第一行包含一个整数n,表示图的顶点数

    接下来n行每行n个整数wi,j,表示点i和点j之间的边的边权。保证wi,j=wj,i,wi,i=0

【输出格式】

输出一个数,表示最远点到图所有顶点的距离和。答案保留4位小数。

 

【输入输出样例】

 

graph.in

graph.out

3

0 1 2

1 0 3

2 3 0

6.0000

【数据说明】

对于30%的数据,满足n,wi,j≤10

对于100%的数据,满足1≤n≤300,1≤wi,j≤10000。

看到就爆炸,写了个神奇的一重循环+双重DFS。

结果爆0。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值