首页 > 预知
头像 Gooby114514
发表于 2024-12-30 11:00:20
D 预知 本题使用到了鸽巢原理(抽屉原理)的思想。 首先考虑 的情况,由于总卡牌数 ,故这是必败的。 当 时,看样例也能发现分为几种情况: 全是 时,说明随便翻两张都必胜,所以 只有一个 时,例如 这种情况,很多同学以为要预知 张,其实只要 张就够了,因为预知出来的两张都一样的话 展开全文
头像 牛客856751393号
发表于 2025-03-08 21:32:20
while True: try: T = int(input()) for _ in range(T): n = int(input()) a = list(map(int, input().split())) 展开全文
头像 郁闷的王老五风度翩翩
发表于 2025-02-28 23:27:14
n =int(input()) result = [] for i in range(n): types = int(input()) cards = list(map(int,input().split())) maxs = max(card for card in car 展开全文
头像 覃亦语
发表于 2025-03-18 20:05:22
''' 如果牌的种类大于1,且只有1种牌的数量大于1张:我们需要预知足够多的卡牌,使得剩下未预知的卡牌中,每种的数量最多为1。这样剩下的牌无论怎么选两张都不会相同,此时玩家只需要从剩下的牌里翻牌。 如果牌的种类大于1,且每种牌的数量都大于1张:需要预知数量最多的种类的所有牌,然后玩家从已预知的牌里抽 展开全文
头像 在写文章的小白菜很犯困
发表于 2025-05-23 17:39:02
思路:从全集S中随机选取p个元素后,形成了两个集合。S1:选取的已知的p个元素S2:剩下未知的元素如何根据S1和S2做出必胜的判断——即一定不会抽到两个相同元素?1、要求S1的元素包含至少两种不同的类或者某个类的全部元素。根据鸽巢原理可得p1=max(占比最大的类的元素的个数)2、要求S2包含每个类 展开全文
头像 Simon233
发表于 2025-05-21 14:38:06
题目可以理解为只知道卡牌的种类数与对应数量,在最倒霉的情况下提前知道几张牌能获胜(这个随机和至少有点歧义,倒霉应该好理解一点)一共三种情况:1.只有一种牌:必输2.除了最多的牌,其它牌数量均为1:预知(最多的牌数量-1)张最多的牌,然后翻开其余任意两张牌即可(此时所有牌的数量都为1)3.其余一般情况 展开全文
头像 番禺小韭菜
发表于 2025-03-04 23:00:59
#include <bits/stdc++.h> using namespace std; const int N = 2e5 + 10; int a[N]; void solve() { int n; cin >> n; for (int i = 1; 展开全文
头像 Serein_Addison
发表于 2025-06-10 22:16:39
/*三种情况: 第一种是只有一种卡牌,输出不可能即可。 第二种是只有一种卡牌个数为a不为1,其他均为以,这时只需要保证让剩下的卡牌均为1即可,即输出a-1即可。 第三种是有多种卡牌个数不为1,这是只要保证最多的卡牌全部找出来即可。 */ #include <stdio.h> int ma 展开全文
头像 达斯1
发表于 2025-03-12 10:38:04
#include <iostream> #define LENGTH 110000 #define ll long long #define MAX(a, b) ((a) > (b) ? (a) : (b)) #define MIN(a, b) ((a) < (b) ? ( 展开全文
头像 鳗鱼山
发表于 2025-04-16 15:48:08
import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = 展开全文

等你来战

查看全部