【AtCoder】【AGC010D】Decrementing

JZOJ5440. 【NOIP2017提高A组冲刺11.1】背包 Description蛤布斯有n种商品,第i种物品的价格为ai,价值为bi。有m个人来向蛤布斯购买商品,每个人每种物品只能购买一个。第j个人有cj的钱,他会不停选择一个能买得起的价格最高的商品买走(如果有多个则选择价值最高的)。你需要求出每个人购买的物品的价值和。Input第一行两个正整数n,m。接下来n行每行两个正整数ai,bi。接下来m行每行一个正整数cj。Outputm行,每行一个整数表示答案 阅读详情

Description

给出一个长度为n的序列 a a ,A、B两个人轮流操作:
1. 选择一个不为1的数,将其-1;
2. 把序列中的所有数/g,g为所有数的gcd;

操作不了的人输。

Solution

博弈题一堆结论…

输的人肯定是拿到111111的局面,
设sum为序列所有数的和,
要想赢,肯定要避免拿到sum=n的情况,

当n为偶数时:如果一直拿到sum为奇数的情况,那么必赢,

结论1:n为偶数且sum为奇数时,先手必胜,否则必输;

我们先来看一下sum在经历了一次操作后的奇偶变化:

(图片来源,侵删)
这里写图片描述

显然,先手可以让每一轮操作后都留给对手一个偶数,而对手只能还回来一个奇数,所以必赢;

偶数必输显然;

当n为奇数时:
结论2:n为奇数且sum为偶数时,先手必胜;
证明:先手要想赢,就必须不让对手还回来一个奇数,对手要想还回来一个奇数,就必须保证gcd不为0,
也就是说,对手在操作前,序列中所有数%gcd是这样的:0,0…,0,1
所以先手只要避免这种情况即可,那先手操作前的序列%gcd有这几种情况:
0,0,0,0,2
0,0,0,1,1
0,0,0,0,k+1
0,0,0,1,k
(后两个要除以那一局的gcd)

我们发现,这4种情况均可以破解,使之不变成0,0,0,0,1,

结论2:n为奇数且sum为奇数时,先手不一定输;
例:2,2,3,这样的话先手必赢,

先手肯定是必须给对手一个奇数,否则对手就赢了
所以就判断能否给对手一个奇数,显然每局如果可以的话方案唯一,
不行当前的人输
每次的gcd必须>1,所以是log次的。

Code

#include <cstdio>
#include <cstdlib>
#include <algorithm>
#define fo(i,a,b) for(int i=a;i<=b;i++)
#define fod(i,a,b) for(int i=a;i>=b;i--)
using namespace std;
typedef long long LL;
const int N=100500;
int read(int &n)
{
    char ch=' ';int q=0,w=1;
    for(;(ch!='-')&&((ch<'0')||(ch>'9'));ch=getchar());
    if(ch=='-')w=-1,ch=getchar();
    for(;ch>='0' && ch<='9';ch=getchar())q=q*10+ch-48;n=q*w;return n;
}
int m,n,ans;
int a[N];
int g[N];
int gcd(int x,int y){return y?gcd(y,x%y):x;}
int main()
{
    int w;
    LL q;
    read(n);
    fo(i,1,n)q+=(LL)read(a[i]);
    if(n==1&&a[1]==1)return printf("Second\n"),0;
    if(n==1)return printf("First\n"),0;
    if(!(n&1))
    {
        if(q&1)printf("First\n");
        else printf("Second\n");
        return 0;
    }
    if(!(q&1))return printf("First\n"),0;
    for(bool I=0;1;I=!I)
    {
        g[n]=a[n];
        LL t=a[n]-1;
        fod(i,n-1,1)g[i]=gcd(g[i+1],a[i]),t+=(LL)a[i];
        bool OK=0;
        q=a[1];
        if(a[1]-1&&(1&(t/(ans=gcd(g[2],a[1]-1)))))OK=1,--a[1];
        else fo(i,2,n)if(a[i]-1)
        {
            w=gcd(q,a[i]-1);
            if(i<n)w=gcd(w,g[i+1]);
            if((1&(t/(ans=w))))
            {
                OK=1,--a[i];
                break;
            }
            q=gcd(q,a[i]);
        }else break;
        if(!OK)
        {
            if(I)printf("First\n");
            else printf("Second\n");
            return 0;
        }
        fo(i,1,n)a[i]/=ans;
    }
    return 0;
}
YOLOv11改进策略【Head】| AFPN渐进式自适应特征金字塔,增加针对小目标的检测头(附模块详解和完整配置步骤) 一、本文介绍 本文利用AFPN对YOLOv11的网络模型进行优化提升。AFPN采用渐近式融合及自适应空间融合操作。通过渐近式架构,逐步整合不同层级特征,有效避免非相邻层级间因语义差距过大导致的信息丢失或降级问题,确保在多尺度特征融合过程中既能保留高层语义信息,又能融入低层细节特征。本文将AFPN应用于YOLOv11中,并配置了针对小目标的检测头,能显著增强模型对不同尺度目标的检测能力,使其在复杂场景下更聚焦于目标物体特征,减少背景等无关信息的影响。 专栏目录:YOLOv11改进目录一览 | 涉及卷积层、 阅读详情

相关推荐

Unity分包下载实战:AssetBundle+CDN+热更新全链路指南

分包下载是移动应用资源管理的核心技术,本质是将大体积安装包拆解为按需加载的独立资源单元,以解决用户安装意愿低、首屏启动慢、热更新不可控等关键问题。其底层依赖资源打包机制(如Unity AssetBundle)、全球分发网络(CDN)与安全热更新策略三者协同。AssetBundle提供资源隔离与依赖管理能力,CDN保障低延迟高可用下载,而热更新策略则决定版本控制、灰度发布与异常恢复的工程鲁棒性。该方案广泛应用于中重度游戏、大型工具类App及需要频繁内容迭代的商业项目,直接提升次日留存、过审成功率与用户在线时长

weixin_29762151的博客 354

Atcoder AGC010D : Decrementing(博弈论)

传送门 题解: #include &lt;bits/stdc++.h&gt; using namespace std; const int RLEN=1&lt;&lt;18|1; inline char nc() { static char ibuf[RLEN],*ib,*ob; (ib==ob) &amp;&amp; (ob=(ib=ibuf)+fread(ibuf...

DZYO的博客 390

kaggle——信用卡欺诈检测项目实战

笔记第一步:了解题目,确定任务第二步:场景分析第三步:数据预处理看是否有缺失值查看样本类别分布数据不均衡解决办法数据值标准化/归一化第四步:特征工程1)查看特征分布情况,把不同类别下特征分布相差不大的特征删除掉2)特征缩放第五步:模型训练处理不平衡样本交叉验证求取最好的模型参数第六步:模型评估使用下采样数据训练与测试使用下采样数据训练与测试(不同的阈值对结果的影响)使用下采样数据训练,原始数据进行测试原始数据进行K折交叉验证使用原始数据进行训练和测试查看ROC曲线逻辑回归阈值选择过采样总结 第一步:了解题目

weixin_45942265的博客 1万+

【AtCoder2305】Decrementing(博弈)

题意 黑板上有n个数,它们的最大公约数为1.于是A和B决定玩一个游戏,两个人轮流进行操作,A先手。 从黑板上的数选择一个不小于2的数,把这个数减去1,然后对于这n个数,除以他们的最大公约数. 当一个人无法操作时便输了。求先手是否必胜。 题解 定义状态1:有奇数个偶数,奇数至少一个 定义状态2:有偶数个偶数,且奇数个数≥2 定义状态3:有偶数个偶数,奇数一个 所有数都为1,为必败态,属于状态2 状态...

CaptainChen的博客 447

在 Dify 平台部署一个 知识库问答(KBQA) 工作流

加强检索约束,Prompt 加限制(“仅基于知识库回答”):启用缓存,使用轻量级 LLM(如 Mistral-7B)(OpenAI Embedding、M3E、BGE等)(支持 PDF/TXT/Markdown/Word)(GPU/CPU 资源,用于向量数据库和模型推理)企业内部文档(PDF/Word/Excel)网页爬取数据(Markdown/HTML)分块大小(太小→信息碎片化,太大→噪声多)相似度阈值(太高→漏检,太低→噪声多)(是否返回正确文档)结构化数据(数据库/API)

井底小蛙的博客 1520

基于STM32和MPU6050的手势控制小车设计与实现

MPU6050传感器:用于检测手势变化,采集加速度和陀螺仪数据。STM32微控制器:处理MPU6050传感器的数据,根据手势变化控制小车的运动。电机驱动模块:接收来自STM32的控制信号,驱动小车的电机,实现小车的前进、后退、左转和右转。小车底盘:作为整个系统的机械部分,提供移动平台。MPU6050是一款集成了3轴加速度计和3轴陀螺仪的传感器,具有高精度、低功耗和小体积等特点。它通过I2C接口与微控制器通信,可以实时采集加速度和角速度数据,广泛应用于运动检测、姿态控制和手势识别等领域。

m0_57781768的博客 2309

杭二集训 diyiti (CF GYM 101597A)

标签:数论,分治 题目 题目传送门 1.1 backgrounds 小O是一个很萌很萌的女孩子 1.2 content 作为一个很萌很萌的女孩子,小O有很多很多美丽的宝石。 有一天,小O将她的宝石排成了一排一共n堆,第一堆有1个宝石,之后 每一堆的宝石数目是前一堆的两倍。 但是小O发现她的宝石不够用了,于是小O决定将每堆的宝石数量对一 个正整数M取模。 趁小O出去玩的时候,小Y偷偷地把

Welcome to yjjr's blog! 854

【已解决】Claude应用地区限制问题:通过Slack注册与魔法节点切换实战指南

本文详细介绍了如何通过Slack注册和切换魔法节点解决Claude应用地区限制问题。从Slack账号注册、创建工作区技巧,到突破地区限制的关键步骤和成功后的配置使用,提供了全面的实战指南。特别强调了节点选择和网络环境对解决'App unavailable'错误的重要性,帮助用户顺利使用Claude AI助手。

weixin_29209801的博客 1758

Noip 模拟 4 2018/10/20

T1:数据结构(set) 对一个可重集合进行操作,每次可以所有元素+1+1+1或添加一个元素。输出集合元素的kkk次方和。 根据二项式定理 可以发现,(a+1)k−ak=C(k,1)an−1+C(k,2)ak−2...C(k,k−1)a(a+1)^k-a^k=C(k,1)a^n-1+C(k,2)a^{k-2}...C(k,k-1)a(a+1)k−ak=C(k,1)an−1+C(k,2)ak−2.....

chm_wt的博客 296

淘宝电商产品价格官方防爬取采集设计机制,如何破?|淘宝电商API数据采集看完你也会!

然而,随着电子商务的蓬勃发展,涌现出大量的第三方工具和应用,试图通过采集淘宝电商产品价格等信息来进行数据分析和竞争优势的获取。为了维护市场秩序和保护商家权益,淘宝采取了一系列的防爬取设计机制,以阻止非授权的数据采集行为。为了确保数据的准确性和及时性,淘宝采取了多层次的防爬取机制,以限制未经授权的数据采集。其它的情况,比如淘宝首页、淘宝关键词商品搜索结果页面、商品详情页面,都是正常展示,未实现加密;也可以使用【tesseract ocr识别】指令,这个是免费无限使用的;【淘宝商品搜索结果页面-本地截图】

TinagirlAPI的博客 1386

IAR9.20.4安装与注册全攻略:附资源及典型问题解决方案

本文提供IAR9.20.4的详细安装与注册指南,涵盖环境准备、安装步骤、权限设置及注册机使用技巧。针对典型问题如评估版残留、权限不足和杀毒软件拦截等,给出了具体解决方案,帮助用户顺利完成IAR开发环境的搭建与激活。

a2b3c4d5e的博客 296

AtCoder 2305 [AGC010D] Decrementing(博弈)

我根本就不会玩数学游戏,我算是搞明白了。

308

8155源码编译DSP(ubuntu环境下)

一.设置环境变量 -users:/$ sudo gedit ~/.bashrc #set adsp cdsp tools path #export ARMLMD_LICENSE_FILE=<LICENSE FILE INFO> #export ARMTOOLS=RVCT221 #export ARMROOT=/pkg/asw/compilers/arm/ADS1.2 #export ARM_COMPILER_PATH=/pkg/qct/software/arm/RVDS/2.2BLD593

Johnny2004的专栏 1676

Atcoder AGC010 题解

A - Addition 要么擦两个奇数,加一个偶数,要么擦两个偶数,加一个偶数。所以如果奇数的个数是奇数个,最后会剩一奇一偶,否则剩下一个偶数。 #include&lt;bits/stdc++.h&gt; using namespace std; #define RI register int int read() { int q=0;char ch=' '; while(ch&lt;'0'...

litble的成(tui)长(fei)史 559

IMSL CNL 7.0.0 (x86-64)Crack

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

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

CodeForces 621 A. Wet Shark and Odd and Even(水~)

Description 给出n个数,问由这n个数中的一些数组成的最大偶数是多少 Input 第一行为一整数n,之后n个整数ai(1<=n<=100000,1<=ai<=10^9) Output 输出由这n个数中的一些数组成的最大偶数 Sample Input 3 1 2 3 Sample Output 6 Solution 水题,统计奇数数量和数字之和,更新最小奇数,如果有奇

ZSQ 1136

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Test 9 for NOIP- Result for Day1

头大这个暑假完就要去搞NOIP了。。。暑假55天也就20次测试。。。为防万一我还是每次测试玩都写个总结。。出题人神奇的把NOI的题强行改成了NOIP的题,还强行说T1很简单,更气人的是最后看了题解发现T1还真的那么简单。 随机大法好。orz T2思路没对,T3第二遍DFS没想对orz。Day9 (20/300)T1 举办比赛 (20/100)题目描述 Mstdream举办了一场抢答比赛!

AVALON_X的博客 1125

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

【博弈】AGC010D Decrementing

分析: 首先,有两个很显然的结论: 1、不考虑除以GCD的情况,就原问题而言(即只是-1),那么胜负只跟偶数的个数有关:若有偶数个偶数,那么后手必胜,反之先手必胜。 证明很简单:很容易想到,奇数的位置其实是可以忽略的,因为当某个人从奇数位-1,另一个人一定可以再在那里-1,又变为了奇数。偶数不能忽略,因为不一定偶数-1后还能再-1(可能就到1了,不能再-1)。所以每个偶数只需1次操作,就能变为奇数...

氧化钠的博客 218

agc 010Decrementing atcoder2305

http://www.elijahqi.win/archives/1425 Time limit時間制限 : 2sec / Memory limitメモリ制限 : 256MB 配点 : 1000 点 問題文 黒板に N 個の整数が書かれています。i 番目の整数は Ai であり、これらの最大公約数は 1 です。 高橋君と青木君はこの数を使ってゲームをします。ゲームでは高橋君から始めて交互に...

Elijahqi 312

Atcoder CODE FESTIVAL 2017 qual B D - 101 to 010 dp

题目链接 题意 对于一个\(01\)串,如果其中存在子串\(101\),则可以将它变成\(010\). 问最多能进行多少次这样的操作。 思路 官方题解 转化 倒过来考虑。 考虑,最终得到的串中的\('1'\)的来源 1-1 | -101--101 | --1011----1011 | | | ----10111--------…… ...

ahu12345678的博客 163

【AtCoder】【AGC011f】Train Service Planning

Description有一条地铁线路,n段路,n+1个站,每段路可以同时交汇走两辆车或只能走一辆车, 每个站可以停车,停车不占用线路, 现在每隔Kmin发一次车,分别从起点/终点开向终点/起点,

2502

【JZOJ 6080】【GDOI2019模拟2019.3.23】IOer

Description m种物品,第i种物品的权值为(ui+v)(ui+v)(ui+v),每种物品有无数个,一种取法的代价为所取物品权值乘积, 问取n个物品的所有不同取法的代价和, 两个取法不同当且仅当存在一种物品在两个方案中取得数量不同, n≤1018,m≤2∗105,mo=109+7n\leq10^{18},m\leq 2*10^5,mo=10^9+7n≤1018,m≤2∗105,mo=109...

1486

【JZOJ 5241】【GDOI2018模拟8.8】苹果和雪梨

Description作为新开的水果连锁店店员,你需要把总部发给你的苹果和雪梨分组出售,从而获得最 大利润。 总部发给你的水果包括: n 个苹果,质量分别为a1,a2…an n 个雪梨,质量分别为b1,b2…bn。 你卖的是盒装水果,一盒水果包括一个苹果和一个雪梨,苹果的质量乘上雪梨的质量就 是这盒水果的价钱。把苹果雪梨配对分成总共n 盒水果后,你要把价格最高的一盒返还给 水果店总部,

1124

【JZOJ 5887】【NOIP2018模拟9.27】作业

Description 小L在完成他的集合论作业时遇到了这样一题:一颗n个节点的树,定义F(u,d)为到u距离不超过d的点组成的集合,求不同的F(u,d)的数量。 Solution 先抛出结论:Ans=∑min(fx+2,gx)Ans=\sum min(f_x+2,g_x)Ans=∑min(fx​+2,gx​) fxf_xfx​表示当然点子树中,距离最远的点的距离(经过边数) gxg_xgx​表示...

784

【AtCoder】【AGC009E】Eternal Average

Description 有n个0,m个1,每次你从这里面取出K个数,取平均值后再把平均值放回去,求最后的答案有多少种取值。 保证(n+m-1)|k Solution 把最后的答案放在K进制下考虑, 如果一个1在第x层,对答案的贡献就是在K进制下的第-x位+1, 那我们可以考虑每次把K进制数的一位+1,操作m次 如果全部为1,答案显然为1, 也就是说,如果随便操作m次,最后出来的K进...

784

【JZOJ 5411】【NOIP2017提高A组集训10.22】友谊

DescriptionFlowey 是一朵能够通过友谊颗粒传播LOVE 的小花.它的友谊颗粒分为两种, 圆粒的和皱粒的,它们依次排列组成了一个长度为2m 的序列.对于一个友谊颗 粒的序列,如果存在1<=i<j<=2m1<=i<j<=2m,满足以下条件: 1)i 为偶数,j 为奇数 2)第i 颗友谊颗粒和第j 颗友谊颗粒同为圆粒或同为皱粒 3)第i 颗友谊颗粒和第j 颗友谊颗粒都还没有被使用

781

【AtCoder】【AGC013D】Piling Up

Description 你有一堆黑白球和一个盒子, 一开始,盒子里有n个不知道颜色的球, 接下来,你要对盒子进行m次操作: 1. 随机从盒子里取出一个球; 2. 往盒子里放一黑一白俩球; 3. 再随机从盒子里取出一个球; 这样你总共会拿出2m个球, 求拿出的这些球有多少总可能(有序), Solution 首先,盒子里总会有n个球, 设DP:f[i][j]表示,做了i次操作...

766
上一篇: 【AtCoder】【AGC009E】Eternal Average
下一篇: 【JZOJ 5557】写诗
HOWARLI
博客等级 码龄11年 109粉丝 378原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值