[Codeforces 808F] [二分] [最小割] Card Game

Codeforces 808F Card Game【思维建图+最小割】 F. Card Game time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Digital collectible card games have become very popular 阅读详情

题意大概就是选一些物品,这个物品魔力值的两两之和为合数,物品等级要小于你的等级,求你最小的等级,可以选出这样的一些物品使这些物品能力值之和>=k。

首先可以二分答案,然后就变成最小割的经典模型

魔力值为奇数的向源点连边,偶数向汇点连边,魔力值之和为合数的两个物品之间连边

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <string>
#include <cstring>
#include <queue>
#define N 110
#define inf 1<<30

using namespace std;

int n,k,cnt,g,S,T;
int p[N],c[N],l[N],a[N],G[N],dis[N],cur[N];
int ip[200010];
struct edge{
  int t,nx,f;
}E[N*N*4];
queue<int> Q;

inline void add(int x,int y,int w){
  E[++cnt].t=y; E[cnt].nx=G[x]; E[cnt].f=w; G[x]=cnt;
  E[++cnt].t=x; E[cnt].nx=G[y]; E[cnt].f=0; G[y]=cnt;
}

inline bool bfs(){
  for(int i=1;i<=n+1;i++) dis[i]=-1; dis[S]=0;
  while(!Q.empty()) Q.pop();
  Q.push(S);
  while(!Q.empty()){
    int x=Q.front(); Q.pop();
    for(int i=G[x];i;i=E[i].nx)
      if(dis[E[i].t]==-1&&E[i].f){
    dis[E[i].t]=dis[x]+1;
    if(E[i].t==T) return 1;
    Q.push(E[i].t);
      }
  }
  return 0;
}

int dfs(int x,int f){
  if(x==T||f==0) return f;
  int used=0,w;
  for(int &i=cur[x];i;i=E[i].nx)
    if(E[i].f&&dis[E[i].t]==dis[x]+1){
      w=dfs(E[i].t,min(f-used,E[i].f));
      E[i].f-=w; E[i^1].f+=w;
      if((used+=w)==f) return f;
    }
  if(!used) dis[x]=-1;
  return used;
}

int main(){
  freopen("1.in","r",stdin);
  freopen("1.out","w",stdout);
  for(int i=2;i<=200000;i++)
    if(!ip[i]) for(int j=i+i;j<=200000;j+=i) ip[j]=1;
  scanf("%d%d",&n,&k);
  for(int i=1;i<=n;i++)
    scanf("%d%d%d",&p[i],&c[i],&l[i]);
  int L=1,R=100,mid,ans=-1;
  while(L<=R){
    memset(G,0,sizeof(G));
    mid=L+R>>1; g=0; cnt=1;
    int mx=-1,mxn;
    for(int i=1;i<=n;i++)
      if(l[i]<=mid&&c[i]==1&&p[i]>mx) mx=p[i],mxn=i;
    for(int i=1;i<=n;i++)
      if(l[i]<=mid&&(c[i]>1||i==mxn)) a[++g]=i;
    S=0; T=g+1;
    for(int i=1;i<=g;i++)
      if(c[a[i]]&1) add(S,i,p[a[i]]);
      else add(i,T,p[a[i]]);
    for(int i=1;i<=g;i++)
      if(c[a[i]]&1)
    for(int j=1;j<=g;j++)
      if((~c[a[j]]&1)&&!ip[c[a[i]]+c[a[j]]])
        add(i,j,inf);
    int v=0;
    for(int i=1;i<=g;i++) v+=p[a[i]];
    while(bfs()){
      for(int i=0;i<=g+1;i++) cur[i]=G[i];
      v-=dfs(S,inf);    
    }
    if(v>=k) R=(ans=mid)-1;
    else L=mid+1;
  }
  printf("%d\n",ans);
  return 0;
}
CUPED (Controlled-experiment using Pre-Experiment Data) 论文学习笔记 CUPED是一种用于提升A/B测试灵敏度的方差缩减技术。它通过利用实验前用户行为数据(协变量X)构建调整后的指标Y_cuped=Y-θ(X-E[X]),其中θ=Cov(Y,X)/Var(X)。这种方法能在保持处理效应估计无偏的前提下,将方差降低1-ρ²倍(ρ为前后指标相关性)。CUPED的核心优势在于:不改变平均处理效应的估计,但能显著提升统计功效,使得实验更容易检测到微小但真实的效应,同时减少所需样本量或实验周期。该技术特别适用于用户异质性大、指标方差高的场景。 阅读详情

相关推荐

PostgreSQL向量数据插件--pgvector安装(附PostgreSQL安装)

本文为本人在安装pgvector中踩过的坑,已找到解决方法,现向大家分享。

m0_62627802的博客 2万+

Codeforces 808F 最大权独立点集,二分

题目链接 https://codeforces.com/contest/808/problem/F 题意 给出n个三元组<p,c,l>,任选若干个,要求符合 相加为质数的两个组不能同时选 ∑p>=k 求所有可行选择方法中max{l}最小值 思路 首先可知答案单调,我们可以二分l来进行处理 至于每次处理,条件一中相加为质数的情况其实可以分为两种:1+1和奇数加偶数。对于1+1型,显然我们只能选择一个p最大的1时是最优的,而奇数+偶数这个条件就很有意思了,我们把c按奇偶性划分,对所有不能一

TheSunspot的博客 317

Dell R730安装Windows Server 2008 R2

一、RAID驱动准备  在安装Windows server2008 R2操作系统时,如果没有发现硬盘,请将下面的阵列卡驱动先解压(在下载的.exe文件,双击点下一步会自动解压),解压后把那文件夹复制到U盘中。阵列卡 PERC9 H330 - H730 - H730P - H830 Controllers for Windows Server 2008 R2二、系统安装方法方法一:光盘安装  ①请您...

MarshLin 2万+

Codeforces - Card Game

题目链接:Codeforces - Card Game 显然等级可以二分。 所以我们可以二分处理掉一维的数据。 然后对于这种素数问题,我们可以建立二分图。奇偶二分图。因为只有可能奇数和偶数组成为素数。 但是这道题要注意,如果有多个1,我也只能取一个,取最大的即可。 然后就是最小割模型了。 AC代码: #pragma GCC optimize("-Ofast","-funroll-all-loo...

青烟绕指柔的博客 540

IT运维必备 开源Urbackup 备份系统部署教程 实战操作

手动添加ip方式检查是否在线 ,linux需要按上述步骤6配置server端地址 不然一直不会进去状态栏。安装依赖sudo apt install -y libcrypto++-dev。补充客户端手动触发备份命令 (一般在服务端操作即可,特殊情况客户端进行操作)修改ubuntu主机名 建议修改为ip 方便上线以ip命名上线。默认客户端安装完毕大概几分钟之内服务端会自动上线。配置客户端指向server端地址。(2)ubuntu 客户端设置。新起一个远程窗口查看配置状态,配置客户端备份文件目录。

qq_34981755的博客 1280

迅投miniQMT量化交易之【网格交易】的实现(25)——写在最后

和大家一起分享如何使用miniQMT实现我们自己的网格交易系统。如果您对量化交易感兴趣,欢迎一起交流。

tzzqn2008的专栏 829

codeforces 博弈 Card Game

codeforces 博弈 Card Game

m0_62031207的博客 388

Mac版Burp Suite专业版破解与汉化完整指南

在Web安全测试领域,Java应用程序的许可证验证机制与本地化实现是常见的技术课题。其原理通常涉及Java Agent技术,通过在JVM启动时动态修改字节码,实现对软件授权状态的校验逻辑进行拦截与重写,从而绕过官方验证。同时,软件界面的国际化(i18n)与本地化(l10n)则依赖于资源文件的替换与加载。从技术价值角度看,深入理解这些机制不仅能满足特定场景下的工具定制需求,更能加深对Java安全机制、软件保护与逆向工程的理解。在实际的工程实践中,安全研究人员与开发者常面临功能受限或语言障碍的挑战,尤其是在渗透

weixin_29327525的博客 1034

[codeforces808F]Card Game

题目大意有n个卡牌,第i个的能量是pi,魔力是ci,等级是li。当你的等级大于等于li,你就可以使用卡牌i。 给定上述所有信息和一个整数k,问你至少需要升到多少级,可以选择一个卡组,满足:卡组内不存在两个不同卡牌魔力之和是质数,并且能量和大于等于k。 n≤100 1 ≤ k ≤ 100000 1 ≤ pi ≤ 1000, 1 ≤ ci ≤ 100000, 1 ≤ li ≤ n分析首先n,c

WorldWide_D的博客 980

生成式引擎优化(GEO):启动GEO优化的5个有效策略

随着生成式AI的普及,传统SEO正被GEO(生成式引擎优化)取代。本文提出GEO五大核心策略:用户意图解析、结构化内容设计、语义关键词优化、对话式内容创作和权威信源建设。研究表明,优化后的内容在AI答案中的引用率提升300%,点击率增长27%。文章还介绍了BERT模型、Schema标记等关键技术工具,并指出未来GEO将向多模态优化、实时数据更新方向发展。企业需避免简单堆砌关键词,应建立长期内容策略,通过结构化、权威性内容在AI时代保持竞争优势。

解锁AI流量新红利!🚀 GEO优化(生成引擎优化)助您掌控AI搜索,让AI成为您的品牌最佳代言人! 2785

(秋招复习)一些SLAM基础

秋招复习--SLAM基础知识篇

weixin_45432823的博客 767

Codeforces808F - Card Game 二分 and 最小割

题意:n个卡片 ,每个有三个值 p,c,l, 求一个最小的L使得 在所有l<=L的卡片中可以选出一个集合使得总和大于K并且任意两个c的总和不是质数。 解: 1、二分L很容易想到 2、判定: (1)、一个集合中任意两个怎样--->最大独立集,(总和为质数的有边的关系)。 考虑质数 要么是2== 1+1(当时忘了) ,要么是奇数==奇数+偶数。 (2)、真对质数为2的情...

fnq9999的博客 356

深度学习100例-卷积神经网络(CNN)彩色图片分类 | 第2天

文章目录前期工作设置GPU导入数据标准化可视化构建CNN网络编译训练模型预测模型评估 前期工作 设置GPU 如果使用的是CPU可以忽略这步 import tensorflow as tf gpus = tf.config.list_physical_devices("GPU") if gpus: gpu0 = gpus[0] #如果有多个GPU,仅使用第0个GPU tf.config.experimental.set_memory_growth(gpu0, True) #设置GPU显存用量

“365天深度学习训练营”报名进行中~ 7854

codeforces 808F Card Game(二分+最大点权独立集)

题目链接 题解: 首先考虑到两奇数或两偶数之和必不为质数,所以可以将卡牌分为两类,不过注意一个特例是两个1,他们的和为质数,所以每次只能取一个,根据贪心,必然取最大的。 显而易见,此时根据质数关系建边,便可得到二分图,每个点都有点权,有相连边的两点不能选,也就是需要求一个最大点权独立集。 最大点权独立集=总和-最小点覆盖 建完超级源汇点以后 最小点覆盖=最小割=最大流 无脑dinic即可 由于有等级的限制,所以可以考虑二分这个等级,每次建图跑 代码如下: #include<bits/stdc++.h&

diabolusexnihil的博客 228

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Codeforces 808F Card Game

Digital collectible card games have become very popular recently. So Vova decided to try one of these.Vova has n cards in his collection. Each of these cards is characterised by its power pi, magic num

Le Petit Prince 728

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Codeforces 808F. Card Game

题目大意 一个物品有三个属性 : 价值,键值,等级. 你不能选取等级高于\(level\)的物品,键值之和为质数的两个数字不共存. 问最低的等级使得可以选出价值之和超过\(k\)的物品. \(n\leq 100, 1 \leq \text{键值} \leq n\) 题解 首先考虑二分答案. 这样可以去掉物品等级的限制. 我们很容易发现除了\(2\)的所有偶数都是非质数. 什么意思呢 ? 如果我...

weixin_30576859的博客 91

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

AC日记——Card Game codeforces 808f

F - Card Game 思路:   题意:     有n张卡片,每张卡片三个值,pi,ci,li;     要求选出几张卡片使得pi之和大于等于给定值;     同时,任意两两ci之和不得为素数;     求选出的li的最小值,如果不能到达给定值则输出-1;     二分+网络流最小割; 代码: #include <bits/stdc++.h> ...

weixin_34302561的博客 109

[CF808F] Card Game(最大流,最大点权独立集,二分)

题目链接:http://codeforces.com/contest/808/problem/F 题意:给出n个三元组,和一个整数k。包括三个属性p c l。要求选出的几个三元组满足∑pi>=k,并且还要满足: 选出的任意两个ci+cj不是素数。 额外有一个变量lv,不能选择li > lv的三元组。 求这个lv的最小值是多少,可以满足上述条件。 转换成二分图来做,考虑奇...

weixin_30483495的博客 175

【Codeforces 808F】【网络流】Card Game 题解

F. Card Game time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard output Digital collectible card games have become very popular recently. So Vova dec

It's Maverick. 874

Codeforces 808F Card Game(和是素数二分图建图+二分图带权最大独立集)

F. Card Game time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard output Digital collectible card games have become very popular recently. So Vova dec

yasolx的博客 748

CodeForces - 808F Card Game (随机化大法)

F. Card Game time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Digital collectible card games have become ver

MR CODER 563

Codeforces 808F 网络流最小割(二分图最大点权独立集) 解题报告

F. Card GameVova has n cards in his collection. Each of these cards is characterised by its power pi, magic number ci and level li. Vova wants to build a deck with total power not less than k, but magi

onepointo 541

Codeforces 102263G-Card Game【数学】 难度:**

题意: Zeyad and Ehab are playing a simple card game, each player initially has a deck of n cards numbered from 1 to n, the game lasts n turns and in each turn both players privately choose one card and ...

weixin_42921101的博客 563

CF 808F - Card Game 二分图最大点权独立集 网络流

题意: 给你一些卡片,每个卡片有价值,魔法值,等级。 现在要你组成一个卡组,使得卡组里面任意两个数魔法值相加不是质数,并且价值之和大于k。 问你需要达到的最低等级,你可以使用等级小于等于你自己等级的卡片。 题解: 如果我们将加起来为素数的任意两个数连边,那么我们就是要求一个独立集,使得点权之和大于k。 而且我们发现,两数相加为质数,一定是一个奇数,一个偶数(除了两个1相加)的二分图。 ...

c6376315qqso的专栏 353

分割绳子(二分)

现在有N(1 <= N <= 1000)条绳子, 他们的长度分别为L1,L2,……,Ln(1 <= Li <= 10000),如果从他们中切割出K(1 <= K <= 1000)条长度相同的绳子, 这K条绳子每条最长能多长? 收起 输入 共有两行,第一行包含两个正整数N和K,用一个空格分割;第二行包含N个数,一次表示N条绳子的长度,两数间用一个空格分隔,...

一身清贫怎敢入繁华 1536
上一篇: [BZOJ4260][字典树]Codechef REBXOR
下一篇: [Codeforces773E] [线段树] [找规律] Blog Post Rating
LowestJN
博客等级 码龄10年 76粉丝 422原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值