当前位置: 首页 > news >正文

2020ICPC南京站

K

K Co-prime Permutation

题意:给定n和k,让你构造n的排列,满足gcd(pi, i)=1的个数为k。

思路:因为x和x-1互质,1和任何数互质,任何数和它本身不互质

当k为奇数时,p1=1,后面k-1个数两两互换

当k为偶数时,后面k个数两两互换

#include <bits/stdc++.h>
#define ios ios::sync_with_stdio(0),cin.tie(0)
#define PII pair<int,int>
typedef long long ll;
const int N=1e6+10;
const int inf=0x3f3f3f3f;using namespace std;
int n,k;
int a[N];
void solve()
{cin>>n>>k;if(k==0){cout<<-1<<'\n';return ;}int cnt=0;for(int i=1;i<=n;i++) a[i]=i;if(k&1){cnt=1;for(int i=2;i<=n&&cnt<k;i++){if(cnt&1) a[i]=i+1;else a[i]=i-1;cnt++;}}else{for(int i=1;i<=n&&cnt<k;i++){if(cnt%2==0) a[i]=i+1;else a[i]=i-1;cnt++;}}for(int i=1;i<=n;i++)cout<<a[i]<<" \n"[i==n];
}
signed main()
{//freopen("input.txt","r",stdin);//freopen("output.txt","w",stdout);ios;int _t=1;
// 	cin>>_t;while(_t--) solve();system("pause");return 0;
}

L

Let's Play Curling

题意:给定n块红色石头,m块蓝色石头的位置。记红色石头的位置为a[i],蓝色石头的位置为b[i]。当红色石头到目标位置c的距离比蓝色所有石头到目标位置的距离都要小时,计一分,找到一个c点可以让红队尽可能多赢,输出红队尽可能多赢的次数。

思路:在两块蓝色石头之间一定存在一个位置满足条件,得分为两个蓝色石头之间红色石头的个数。

即求两个蓝色石头之间最多有几个红色石头。

排序后枚举蓝色石头的位置p,二分红色石头找到上下界。

#include <bits/stdc++.h>
#define ios ios::sync_with_stdio(0),cin.tie(0)
#define PII pair<int,int>
typedef long long ll;
const int N=1e6+10;
const int inf=0x3f3f3f3f;using namespace std;
int n,m;
void solve()
{cin>>n>>m;vector<int>a,b;for(int i=1;i<=n;i++){int x;cin>>x;a.push_back(x);}for(int i=1;i<=m;i++){int x;cin>>x;b.push_back(x);}b.push_back(0);b.push_back(1e9+10);sort(a.begin(),a.end());sort(b.begin(),b.end());int ans=0;for(int i=0;i<=m;i++){int l=upper_bound(a.begin(),a.end(),b[i])-a.begin();int r=lower_bound(a.begin(),a.end(),b[i+1])-a.begin();ans=max(ans,r-l);}if(ans==0) cout<<"Impossible\n";else cout<<ans<<'\n';
}
signed main()
{//freopen("input.txt","r",stdin);//freopen("output.txt","w",stdout);ios;int _t=1;cin>>_t;while(_t--) solve();system("pause");return 0;
}

E

Evil Coordinate

题意:初始位置为(0, 0),给定陷阱位置(x, y)和操作字符串。让我们重排列操作字符串使得不陷入陷阱。

思路:设最终位置为(X, Y)若有解则(X, Y)与(x, y)至少有一维坐标不同,我们可以先走不同的那个方向,再走相同的那个方向。所以我们可以将相同操作排在一起,然后枚举UDLR的全排列就可以。

#include <bits/stdc++.h>
#define ios ios::sync_with_stdio(0),cin.tie(0)
#define PII pair<int,int>
typedef long long ll;
const int N=1e6+10;
const int inf=0x3f3f3f3f;using namespace std;
int x,y;
string s;
int dir[4][2]={0,1,0,-1,-1,0,1,0};
char op[4]={'U','D','L','R'};
map<int,int>cnt;
string ans;
bool check(vector<int>v)
{ans.clear();int X=0,Y=0;for(int i=0;i<4;i++){for(int j=0;j<cnt[v[i]];j++){ans+=op[v[i]];X+=dir[v[i]][0];Y+=dir[v[i]][1];if(X==x&&Y==y) return 0;}}return 1;
}
void solve()
{cin>>x>>y;cin>>s;if(x==0&&y==0){cout<<"Impossible\n";return ;}cnt.clear();for(int i=0;i<s.length();i++)if(s[i]=='U') cnt[0]++;else if(s[i]=='D') cnt[1]++;else if(s[i]=='L') cnt[2]++;else cnt[3]++;vector<int>v={0,1,2,3};bool f=0;do{if(check(v)){f=1;break;}} while (next_permutation(v.begin(),v.end()));if(!f){cout<<"Impossible\n";return ;}else cout<<ans<<'\n';
}
signed main()
{//freopen("input.txt","r",stdin);//freopen("output.txt","w",stdout);//ios;int _t=1;cin>>_t;while(_t--) solve();system("pause");return 0;
}

F

Fireworks

题意:小明做一个烟花花费n的时间,点燃所有做好的烟花花费m的时间。每个烟花有p*10^{-4}的概率是完美的。求最优策略下最小时间花费。

思路:假设最优策略是每生产k个再一起点燃,那么释放一次成功的概率为1-(1-p)^k  (p=p*1e-4).

释放几次后得到完美的期望满足几何分布。

几何分布:在n次伯努利试验中, 试验k次才得到第一次成功的概率。详细的说,是:前k-1次皆失败, 第k次成功的概率。 期望E(x)=1/p;(概率论公式,不再赘述)

那么答案为E(x)*(nk+m)= (nk+m) / [1-(1-p)^k]

接下来三分寻找答案的最小值。

#include <bits/stdc++.h>
#define ios ios::sync_with_stdio(0),cin.tie(0)
#define PII pair<int,int>
typedef long long ll;
const int N=1e6+10;
const int inf=0x3f3f3f3f;using namespace std;
double n,m;
double p;
double qmi(double a,int k)
{double ret=1;while(k){if(k&1) ret=ret*a;k>>=1;a=a*a;}return ret;
}
double get(int k)
{double t=1.0-qmi(1.0-p,k);if(t==0) return (double)0x3f3f3f3f;return (k*n*1.0+m)/t;
}
void solve()
{cin>>n>>m>>p;p=p*1e-4;double ans=(double)0x3f3f3f3f3f3f3f3f;int l=1,r=1e9;while(r>l){int lmid=l+(r-l)/3,rmid=r-(r-l)/3;double f1=get(lmid),f2=get(rmid);ans=min(ans,min(f1,f2));if(f1<f2) r=rmid-1;else l=lmid+1;}printf("%.10f\n",ans);
}
signed main()
{//freopen("input.txt","r",stdin);//freopen("output.txt","w",stdout);//ios;int _t=1;cin>>_t;while(_t--) solve();system("pause");return 0;
}

相关文章:

2020ICPC南京站

K K Co-prime Permutation 题意&#xff1a;给定n和k&#xff0c;让你构造n的排列&#xff0c;满足gcd(pi, i)1的个数为k。 思路&#xff1a;因为x和x-1互质&#xff0c;1和任何数互质&#xff0c;任何数和它本身不互质 当k为奇数时&#xff0c;p11&#xff0c;后面k-1个数…...

Linux 中的 chsh 命令及示例

介绍 bash shell 是 Linux 最流行的登录 shell 之一。但是,对于不同的命令行操作,可以使用替代方法。chshLinux 中的( change shell )命令使用户能够修改登录 shell 。 以下教程...

JavaScript 数组如何实现冒泡排序?

冒泡排序是一种简单但效率较低的排序算法&#xff0c;常用于对小型数据集进行排序。它的原理是多次遍历数组&#xff0c;比较相邻元素的大小&#xff0c;并根据需要交换它们的位置&#xff0c;将最大&#xff08;或最小&#xff09;的元素逐渐“冒泡”到数组的一端。这个过程会…...

ZooKeeper集群环境搭建

&#x1f947;&#x1f947;【大数据学习记录篇】-持续更新中~&#x1f947;&#x1f947; 个人主页&#xff1a;beixi 本文章收录于专栏&#xff08;点击传送&#xff09;&#xff1a;【大数据学习】 &#x1f493;&#x1f493;持续更新中&#xff0c;感谢各位前辈朋友们支持…...

【跟小嘉学 Rust 编程】二十、进阶扩展

系列文章目录 【跟小嘉学 Rust 编程】一、Rust 编程基础 【跟小嘉学 Rust 编程】二、Rust 包管理工具使用 【跟小嘉学 Rust 编程】三、Rust 的基本程序概念 【跟小嘉学 Rust 编程】四、理解 Rust 的所有权概念 【跟小嘉学 Rust 编程】五、使用结构体关联结构化数据 【跟小嘉学…...

pytorch学习过程中一些基础语法

1、tensor.view()函数&#xff0c;通俗理解就是reshape&#xff0c;#参数这里的-1需要注意&#xff0c;可以根据原张量size自行计算 data1torch.randn((4,2)) data2data1.view(2,4) data3data2.view(-1,8)2、tensor.max()函数&#xff0c;在分类问题中&#xff0c;通常需要使用…...

判断聚类 n_clusters

目录 基本原理 代码实现&#xff1a; 肘部法则&#xff08;Elbow Method&#xff09;&#xff1a; 轮廓系数&#xff08;Silhouette Coefficient&#xff09; Gap Statistic&#xff08;间隙统计量&#xff09;&#xff1a; Calinski-Harabasz Index&#xff08;Calinski-…...

基于深度学习的网络异常检测方法研究

摘要&#xff1a; 本文提出了一种基于深度学习的网络异常检测方法&#xff0c;旨在有效地识别网络中潜在的异常行为。通过利用深度学习算法&#xff0c;结合大规模网络流量数据的训练&#xff0c;我们实现了对复杂网络环境下的异常行为的准确检测与分类。实验结果表明&#xf…...

SSM 基于注解的整合实现

一、pom.xml <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelV…...

工具类APP如何解决黏性差、停留短、打开率低等痛点?

工具产品除了需要把自己的功能做到极致之外&#xff0c;其实需要借助一些情感手段、增设一些游戏机制、输出高质量内容、搭建社区组建用户关系链等方式&#xff0c;来提高产品的用户黏性&#xff0c;衍生产品的价值链。 工具类产品由于进入门槛低&#xff0c;竞争尤为激烈&…...

使用Java MVC开发高效、可扩展的Web应用

在当今的Web开发领域&#xff0c;高效和可扩展性是我们追求的目标。Java作为一种强大且广泛使用的编程语言&#xff0c;提供了丰富的工具和框架来支持Web应用的开发。其中&#xff0c;MVC模式是一种被广泛采用的架构模式&#xff0c;它能够有效地组织和管理代码&#xff0c;使得…...

wandb安装方法及本地部署教程

文章目录 1 wandb介绍2 wandb安装2.1 注册wandb账号2.2 创建项目并获得密钥2.3 安装wandb并登录 3 wandb本地部署3.1 设置wandb运行模式3.2 云端查看运行数据 4 总结 1 wandb介绍 Wandb&#xff08;Weights & Biases&#xff09;是一个用于跟踪、可视化和协作机器学习实验…...

stable diffusion实践操作-提示词插件安装与使用

本文专门开一节写提示词相关的内容&#xff0c;在看之前&#xff0c;可以同步关注&#xff1a; stable diffusion实践操作 正文 1、提示词插件安装 1.1、 安装 1.2 加载【应用更改并重载前端】 1.3 界面展示 1.3.-4 使用 里面有个收藏列表&#xff0c;可以收藏以前的所有提示…...

【SpringBoot】详细介绍SpringBoot中的bean

在Spring Boot中&#xff0c;Bean是由Spring容器实例化、管理和维护的对象。Bean是Spring框架的核心概念之一&#xff0c;它代表了应用程序中的组件或对象。 以下是有关Spring Boot中Bean的详细介绍&#xff1a; 1. 定义&#xff1a;Bean是在Spring容器中被实例化、管理和维护…...

【Nuxt实战】在Nuxt3项目中如何按需引入Element-plus

步骤一&#xff1a;安装 Element Plus 和图标库 首先&#xff0c;使用以下命令安装 Element Plus 和它的图标库&#xff1a; npm install element-plus --save npm install element-plus/icons-vue步骤二&#xff1a;安装 Nuxt Element Plus 模块 安装 Nuxt Element Plus 模…...

专业制造一体化ERP系统,专注于制造工厂生产管理信息化,可定制-亿发

制造业是国民经济的支柱产业&#xff0c;对于经济发展和竞争力至关重要。在数字化和智能化趋势的推动下&#xff0c;制造业正处于升级的关键时期。而ERP系统&#xff0c;即企业资源计划系统&#xff0c;能够将企业的各个业务环节整合起来&#xff0c;实现资源的有效管理和信息的…...

Linux工具

一、yum yum可以看作一个客户端&#xff08;应用商店&#xff09;、应用程序&#xff0c;它如何知道去哪里下载软件&#xff1f; yum也是一个指令/程序&#xff0c;可以找到它的安装路径。 在list中可以看到yum能安装的所有软件&#xff0c;通过管道找到想要的&#xff0c;yum …...

Java项目-苍穹外卖-Day07-redis缓存应用-SpringCache/购物车功能

文章目录 前言缓存菜品问题分析和实现思路缓存菜品数据清理缓存数据功能测试 SpringCache介绍入门案例 缓存套餐购物车功能添加购物车需求分析和产品原型测试 查看购物车清空购物车 前言 本章节主要是进行用户端的购物车功能开发 和redis作为mysql缓存的应用以及SpringCache的…...

零知识证明(zk-SNARK)(一)

全称为 Zero-Knowledge Succinct Non-Interactive Argument of Knowledge&#xff0c;简洁非交互式零知识证明&#xff0c;简洁性使得运行该协议时&#xff0c;即便statement非常大&#xff0c;它的proof大小也仅有几百个bytes&#xff0c;并且验证一个proof的时间可以达到毫秒…...

linux中打印数据的行缓冲模式

1. 回车换行符在Window下和在Linux下的区别&#xff1a; 在Window下&#xff1a;回车换行符为\r\n 在Linux下&#xff1a;回车换行符为\n \n为换行符&#xff0c;换行相当于光标跳转到下一行的这个位置 \r为回车符&#xff0c;回车相当于光标跳转到当前行的最左边的位置 所以…...

生成xcframework

打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式&#xff0c;可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查

在对接支付宝API的时候&#xff0c;遇到了一些问题&#xff0c;记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...

CTF show Web 红包题第六弹

提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框&#xff0c;很难让人不联想到SQL注入&#xff0c;但提示都说了不是SQL注入&#xff0c;所以就不往这方面想了 ​ 先查看一下网页源码&#xff0c;发现一段JavaScript代码&#xff0c;有一个关键类ctfs…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

Spring Boot 实现流式响应(兼容 2.7.x)

在实际开发中&#xff0c;我们可能会遇到一些流式数据处理的场景&#xff0c;比如接收来自上游接口的 Server-Sent Events&#xff08;SSE&#xff09; 或 流式 JSON 内容&#xff0c;并将其原样中转给前端页面或客户端。这种情况下&#xff0c;传统的 RestTemplate 缓存机制会…...

Python爬虫(二):爬虫完整流程

爬虫完整流程详解&#xff08;7大核心步骤实战技巧&#xff09; 一、爬虫完整工作流程 以下是爬虫开发的完整流程&#xff0c;我将结合具体技术点和实战经验展开说明&#xff1a; 1. 目标分析与前期准备 网站技术分析&#xff1a; 使用浏览器开发者工具&#xff08;F12&…...

Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!

一、引言 在数据驱动的背景下&#xff0c;知识图谱凭借其高效的信息组织能力&#xff0c;正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合&#xff0c;探讨知识图谱开发的实现细节&#xff0c;帮助读者掌握该技术栈在实际项目中的落地方法。 …...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文全面剖析RNN核心原理&#xff0c;深入讲解梯度消失/爆炸问题&#xff0c;并通过LSTM/GRU结构实现解决方案&#xff0c;提供时间序列预测和文本生成…...

鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南

1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;使用DevEco Studio作为开发工具&#xff0c;采用Java语言实现&#xff0c;包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...

Java 二维码

Java 二维码 **技术&#xff1a;**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...