Codeforces Round 942 (Div. 2) A~D1

A. Contest Proposal

Problem - A - Codeforces

题目大意

        给定数组ai和bi,这俩数组都是非递减的。每次操作可以在ai的前面放上任意数字w,并删去a数组末尾的元素,求最少多少次操作让ai<=bi。

思路

        模拟几个样例之后发现就是求最少把a数组右移多少位。

        其实我想了下贪心并不好做,看了下数据范围直接二分就好了(直接暴力好像也行)。二分有思路之后其实就很好做了,枚举要做x次操作,check函数之后比较a数组中从i-n-x,b数组从x+1-n,比较即可。

#include<bits/stdc++.h>
using ll=long long;
const int  N=1e3+10;
int a[N],b[N];
int n;
bool check(int x)//要删去几个
{for(int i=1,j=x+1;i<=n-x,j<=n;i++,j++){if(a[i]>b[j]) return false;}return true;
}
void solve()
{std::cin>>n;for(int i=1;i<=n;i++) std::cin>>a[i];for(int i=1;i<=n;i++) std::cin>>b[i];int l=0,r=n,res=-1;while(l<=r){int mid=l+r>>1;if(check(mid)){res=mid;r=mid-1;}else{l=mid+1;}}std::cout<<res<<'\n';
}
signed main()
{std::ios::sync_with_stdio(0);std::cin.tie(nullptr);int t=1;std::cin>>t;while(t--){solve();}return 0;
}

 B. Coin Games

Problem - B - Codeforces

题目大意

        给n个硬币,每次能选择一个正面朝上的硬币把他拿走,并且翻转相邻的两个硬币(这题硬币是成环放置的)。如果没有正面朝上的硬币可拿,就输了。求解先手能否必胜。

思路

        感觉这题比cd难啊,可能我是真的不太会写博弈论(加训.jpg)。

        这题必输态是U的个数为0,如果我们手捏几种情况:

UUU,DUD,UUD,DUU->DD,UU,DU,UD

3个u会变成0个u,2个u变成1个u,1个u变成2个u

每次取走u都会让u的个数-3/-1/+1,因此每次都会改变u个数的奇偶性。

        如果遇到是UU,必败。如果遇到是U,必胜。因此猜结论,u为偶数个必败,奇数必胜。

        

        U的个数为0显然是一个必败局面。

        对任意一个局面,如果有U的个数为奇数,alice操作完之后U的个数一定是偶数,如果bob能操作,操作完之后一定是奇数,最小的奇数就是1,所以alice一定不会输。所以alice必赢。因此U的个数为奇数是一个必胜局面。

        对任意一个局面,如果有U的个数为偶数,alice操作完之后U的个数一定是奇数,此时对于bob这是一个必胜局面,alice必输。因此U的偶数是一个必败局面。

#include<bits/stdc++.h>
using ll=long long;
const int  N=1e3+10;
int a[N],b[N];
int n;
void solve()
{std::cin>>n;std::string s;std::cin>>s;int len=s.size();//遇到正反/反反 win//遇到  正正    输int cnt=0;for(int i=0;i<len;i++){if(s[i]=='U') cnt++;}if(cnt%2) std::cout<<"YES"<<'\n';else std::cout<<"NO"<<'\n';
}
signed main()
{std::ios::sync_with_stdio(0);std::cin.tie(nullptr);int t=1;std::cin>>t;while(t--){solve();}return 0;
}

 C. Permutation Counting

Problem - C - Codeforces 

题目大意

        给一些牌编号从1到n,给你k个硬币,可以买k张任意的牌。
        输入一个数组,ai代码编号为i的牌有几张。
        输出最后1-n的排列的个数。

思路

         模拟一遍样例之后会发现,123123123123,这种4个123的情况会有4+3+3种可能,那么对于任意1-n的排列如果有m个,答案就是m+(m-1)*(n-1)。还有特别的情况,比如3123123,这种情况会多一种,因此我们再循环一遍多余的数字有几种,加上就是答案。

        然后就是我们需要k次操作之后让1-n的完整排列数最多,也就是让数组中最小的数字最大。我一开始脑瘫写了个堆模拟,爽超时。(k是1e12,while(k)必超时的啊,又被自己蠢到了)。

        最小的数最大,这不是妥妥的二分吗,只要有二分的思路基本都很好写和debug,所以我果断换了二分。然后就是注意二分的边界大小。

#include<bits/stdc++.h>
using ll=long long;
#define int ll
const int  N=2e5+10;
int a[N],b[N];
int n,k;
bool check(int x)
{ll sum=0;for(int i=1;i<=n;i++){if(a[i]<x){sum+=x-a[i];}if(sum>k) return false;}return true;
}
void solve()
{std::cin>>n>>k;//std::priority_queue<int,std::vector<int>,std::greater<int>> q;//小根堆for(int i=1;i<=n;i++){std::cin>>a[i];b[i]=a[i];//q.push(a[i]);}int t=0;int l=0,r=1e15,res=-1;while(l<=r){int mid=l+r>>1;if(check(mid)){l=mid+1;res=mid;}else r=mid-1;}t=res;//最小是这么多//std::cout<<t<<"xxxxxxxxx"<<'\n';ll sum=0;for(int i=1;i<=n;i++){if(a[i]<t){sum+=t-a[i];//已经用上的a[i]=t;}}sum=k-sum;for(int i=1;i<=n&&sum>0;i++){if(a[i]==t){sum--;a[i]++;}}ll ans=t+(t-1)*(n-1);for(int i=1;i<=n;i++){if(a[i]>t) ans++;}std::cout<<ans<<'\n';
}
signed main()
{std::ios::sync_with_stdio(0);std::cin.tie(nullptr);int t=1;std::cin>>t;while(t--){solve();}return 0;
}

D1. Reverse Card (Easy Version)

Problem - D1 - Codeforces 

题目大意

        求满足条件的有序对(a,b)的个数。

思路

         multiple不是乘积的意思,我一开始误解题意浪费了好多时间,

        然后会发现(a+b)/b=gcd(a,b)*k,那么a一定是b的倍数。我们枚举即可。

#include<bits/stdc++.h>
using ll=long long;
//#define int ll
const int  N=2e6+10;
int a[N],b[N];
int n,m;
void solve()
{std::cin>>n>>m;ll cnt=0;for(int i=1;i<=m;i++){for(int j=1;(ll)j*i<=n;j++){ll a=j*i,b=i;if((a/b+1)%(std::__gcd(a,b))!=0) continue;//std::cout<<a<<" "<<b<<'\n';cnt++;}}std::cout<<cnt<<'\n';
}
signed main()
{std::ios::sync_with_stdio(0);std::cin.tie(nullptr);int t=1;std::cin>>t;while(t--){solve();}return 0;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/319812.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Nginx(搭建高可用集群)

文章目录 1.基本介绍1.在微服务架构中的位置2.配置前提3.主从模式架构图 2.启动主Nginx和两个Tomcat1.启动linux的tomcat2.启动win的tomcat3.启动主Nginx&#xff0c;进入安装目录 ./sbin/nginx -c nginx.conf4.windows访问 http://look.sunxiansheng.cn:7777/search/cal.jsp 3…

第七篇:深入解析操作系统基础原理:探索进程、存储、设备和文件管理

深入解析操作系统基础原理&#xff1a;探索进程、存储、设备和文件管理 1 引言 在现代计算系统中&#xff0c;操作系统扮演着至关重要的角色&#xff0c;它是软件与硬件之间的协调者&#xff0c;负责有效地管理系统资源&#xff0c;提供必要的服务支持&#xff0c;以确保应用程…

库存管理系统开源啦

软件介绍 ModernWMS是一个针对小型物流仓储供应链流程的开源库存管理系统。该系统的开发初衷是为了满足中小型企业在有限IT预算下对仓储管理的需求。通过总结多年ERP系统研发经验&#xff0c;项目团队开发了这套适用于中小型企业的系统&#xff0c;以帮助那些有特定需求的用户。…

设计模式: 模板模式

目录 一&#xff0c;模板模式 二&#xff0c;特点 三&#xff0c;组成部分 四&#xff0c;实现步骤 五&#xff0c;案例 一&#xff0c;模板模式 模板模式&#xff08;Template Pattern&#xff09;是一种行为型设计模式&#xff0c;它在超类中定义了一个算法的骨架&#…

13_Scala面向对象编程_伴生对象

文章目录 1.伴生对象1.1 scala的一个性质&#xff0c;scala文件中的类都是公共的&#xff1b;1.2 scala使用object关键字也可以声明对象&#xff1b; 3.关于伴生对象和类4.权限修饰符&#xff0c;scala仅有private;5.伴生对象可以访问伴生类中的私有属性&#xff1b;6.案例7.伴…

K8S 哲学 - 服务发现 services

apiVersion: v1 kind: Service metadata:name: deploy-servicelabels:app: deploy-service spec: ports: - port: 80targetPort: 80name: deploy-service-podselector: app: deploy-podtype: NodePort service 的 endPoint &#xff08;ep&#xff09; 主机端口分配方式 两…

MyBatisPlus自定义SQL

目录 一、自定义SQL介绍 二、自定义SQL的原因 1.案例 &#xff08;1&#xff09;不使用自定义SQL &#xff08;2&#xff09;使用自定义SQL 三、总结 一、自定义SQL介绍 我们可以利用MyBatisPlus的Wrapper来构建复杂的where条件&#xff0c;然后自己定义SQL语句中的剩下的…

Bert基础(二十)--Bert实战:机器阅读理解任务

一、机器阅读理解任务 1.1 概念理解 机器阅读理解&#xff08;Machine Reading Comprehension, MRC&#xff09;就是给定一篇文章&#xff0c;以及基于文章的一个问题&#xff0c;让机器在阅读文章后对问题进行作答。 在机器阅读理解领域&#xff0c;模型的核心能力体现在对…

企业计算机服务器中了halo勒索病毒怎么处理,halo勒索病毒解密流程

随着网络技术的不断发展&#xff0c;网络在企业生产运营过程中发挥着重大作用&#xff0c;很多企业利用网络开展各项工作业务&#xff0c;网络也大大提高了企业的生产效率&#xff0c;但随之而来的网络数据安全问题成为众多企业关心的主要话题。近日&#xff0c;云天数据恢复中…

OpenAI发布GPT-4.0使用指南

大家好&#xff0c;ChatGPT 自诞生以来&#xff0c;凭借划时代的创新&#xff0c;被无数人一举送上生成式 AI 的神坛。在使用时&#xff0c;总是期望它能准确理解我们的意图&#xff0c;却时常发现其回答或创作并非百分之百贴合期待。这种落差可能源于我们对于模型性能的过高期…

【R语言数据分析】函数

目录 自定义函数 apply函数 分类汇总函数aggregate 自定义函数 R语言中的自定义函数更像是在自定义一种运算规则。 自定义函数的语法是 函数名 函数体 } 比如 表示定义了一个名为BMI_function的函数&#xff0c;这个函数代表了一种运算规则&#xff0c;就是把传入的x和…

如何处理微服务之间的通信和数据一致性?

✨✨祝屏幕前的兄弟姐妹们每天都有好运相伴左右&#xff0c;一定要天天开心哦&#xff01;✨✨ &#x1f388;&#x1f388;作者主页&#xff1a; 喔的嘛呀&#x1f388;&#x1f388; 目录 引言 一、微服务通信 1、同步通信&#xff1a;HTTP 1.1.同步通信示例代码&#xf…

记录几种排序算法

十种常见排序算法可以分类两大类别&#xff1a;比较类排序和非比较类排序。 常见的快速排序、归并排序、堆排序以及冒泡排序等都属于比较类排序算法。比较类排序是通过比较来决定元素间的相对次序&#xff0c;其时间复杂度不能突破 O(nlogn)。在冒泡排序之类的排序中&…

项目经理【人】原则

系列文章目录 【引论一】项目管理的意义 【引论二】项目管理的逻辑 【环境】概述 【环境】原则 【环境】任务 【环境】绩效 【人】概述 【人】原则 一、共创模式 1.1 共创模式 二、干系人的影响力强度和态度 2.1 干系人影响力 2.2 干系人态度 2.3 干系人管理 三、干系人权力…

夏目友人帐所有妖怪名单

夏目友人帐妖怪名单 夏目友人帐 第一季 2008.07.07第1话&#xff1a;猫和友人帐 / 猫と友人帐 菱垣 狞影 斑第2话&#xff1a;露神之祠 / 露神の祠 露神 濯第3话&#xff1a;八原的怪人 / 八ツ原の怪人 一只目 牛头&#xff08;中级妖怪&#xff09;第4话&#xff1a;时雨与少女…

OceanBase 助力同方智慧能源,打造安全可靠、高性能的能源数据架构

本文作者&#xff1a;丁泽斌&#xff0c;同方智慧能源数据库工程师 业务背景 作为同方股份有限公司旗下的领军企业&#xff0c;同方智慧能源集团矢志成为全球领先的综合智慧能源解决方案提供商。凭借中核集团和清华大学的科技实力&#xff0c;专注于向建筑、交通、工业、北方供…

Initialize failed: invalid dom.

项目场景&#xff1a; 在vue中使用Echarts出现的错误 问题描述 提示&#xff1a;这里描述项目中遇到的问题&#xff1a; 例如&#xff1a;在vue中使用Echarts出现的错误 ERROR Initialize failed: invalid dom.at Module.init (webpack-internal:///./node_modules/echarts…

放下洒脱,活出勇气 -java面试我来了-(数据库和Spring篇)

事先说明 老师要求我们记面试题-基础篇开始背-五一作业&#x1f602;&#x1f602;&#x1f602;&#x1f602; 基础重要呀~~~~~复习是必须得-~~~~fighting&#x1f601;&#x1f601; 如果有大佬--请不要太在意细节-我的水平有限 开始我们的复习之路----&#x1f680;&am…

【Spring 】Spring MVC 入门Ⅱ

Spring MVC 入门Ⅱ 一、接收Cookie / Session 这两者都是用来保存用户信息的&#xff0c;但不同的是&#xff1a; Cookie存在客户端 Session存在服务器 Session产生时会生成一个唯一性的SessionID&#xff0c;这个SessionID可以用于匹配Session和Cookie SessionID可以在Cooki…

如何将安卓手机投屏到Windows 10电脑上

诸神缄默不语-个人CSDN博文目录 我之所以要干这个事是为了用手机直播的时候在电脑上看弹幕…… 文章目录 1. 方法一&#xff1a;直接用Win10内置的投影到此电脑2. 方法二&#xff1a;用AirDroid Cast投屏到电脑上 1. 方法一&#xff1a;直接用Win10内置的投影到此电脑 在设置…