10.10考试题

voteplus

【问题描述】
R 君博客上有⼀个投票板块,⼤家可以使⽤投票的⽅式来表达⾃⼰对某些问题的赞成或反对的意见。

投票结果是公开的,但是 R 君会把这个结果化成⼀个最简分数,如 1:2,4:3。

注意到同⼀个最简分数可能代表了不同的总⼈数,如: 300 ⼈赞同, 600⼈反对与 1 ⼈赞同, 2 ⼈反对显⽰的都是 1:2。

Neetenin 同学发现了这⼀点,但是 Neetenin 同学想猜出有多少⼈参加了投票,他使⽤的⽅法是先看结果,⾃⼰投⼀票赞同后再看结果。

⽐如⼀个当前的投票结果是 1:2,但是 Neetenin 同学投了⼀票赞成后变成了 301:600, Neetenin 同学就知道⼀共有 300+600+1=901 ⼈参加了此次投票。

现在 Neetenin 同学把之前和之后的结果都告诉你,让你算算⼀共有多少⼈参加了投票!

当然, Neetenin 可能也有看错了的时候,所以当问题⽆解的时候请输出”fake”(不含双引号)。

【输入格式】

⼀⾏四个整数 a,b,c,d,表⽰前⼀次结果是 a:b,后⼀次结果是 c:d。

【输出格式】

输出⼀个整数或⼀个字符串”fake”(不含双引号),表⽰参加投票的总⼈数,包含 Neetenin 同学。

【样例输入 1】

1 4 1 3

【样例输出 1】

16

【样例输入 2】

1 3 1 4

【样例输出 2】

fake

【数据规模及约定】

对于前 50% 的数据, 1 ≤ a; b; c; d ≤ 100000。

对于前 50% 的数据, 1 ≤ 答案 ≤ 100000。

对于前 100% 的数据, 1 ≤ a; b; c; d ≤ 10^9。

对于前 100% 的数据, 1 ≤ 答案 ≤ 10^9。

【题解】

设之前是x人投赞成,y人反对,那么不难列出\(\displaystyle\frac x y=\frac a b,\frac{x+1}y=\frac c d\)

把这个方程组乱搞搞,就能得到\(\displaystyle x=\frac{ad}{bc-ad},y=\frac{bd}{bc-ad}\)

判断\(bc-ad>0\),并且ad和bd都能整除即可输出,否则当然是fake了

fire

【问题描述】
森林着⽕了,⽕势还在不断蔓延。

R 君作为森林管理员,看到⽕势失去控制、在森林中四处蔓延,⼼⾥很慌。

经过 R 君平⽇仔细的研究,这个森林的⽕势传播可以看成⼀个 n 个节点的带边权的⽆向图 (节点标号为 1-n),每个节点代表森林的⼀个区域,⼀条边 (u,v,w) 代表着⽕势从区域 u 传播到区域 v 需要花费 w 的时间。并且整个森林是⼀个连通图,⼀旦着⽕,没有节点可以幸免。

通过⾃动化的 IoT 设备, R 君观察到了 0 时刻有 k 处起⽕点,然后⼤⽕就按照⽕势传播图的规则蔓延开来。

不幸的是森林⾥有 q 个区域存在着居民,所以 R 君⾮常想知道⽕势蔓延到这 q 个区域的时间从⽽展开营救⾏动。
然⽽ R 君觉得这个问题太难了,于是找到了学 OI 的你。

【输入格式】

第⼀⾏四个整数 n, m, k, q,表⽰图的点数、边数、起⽕点数量、存在居民的区域数量。

接下来 m ⾏,每⾏三个正整数 u, v, w,表⽰⼀条 u 到 v,边权为 w 的⽆向边。

接下来⼀⾏ k 个正整数,表⽰ 0 时刻 k 个起⽕点的节点编号。

接下来⼀⾏ q 个正整数,表⽰询问的 q 个居民区的节点编号。

【输出格式】

输出 q ⾏,每⾏⼀个整数,表⽰⽕势蔓延到该点的时间。

【样例输入】

5 5 2 5
1 2 5
1 3 2
2 3 5
2 4 5
3 5 2
2 5
5 4 3 2 1

【样例输出】

0 5 2 0 4

【数据规模及约定】

对于前 10% 的数据, 1 ≤ n ≤ 100。

对于另外 20% 的数据,图为⼀棵树。

对于另外 20% 的数据, k=1。

对于另外 20% 的数据, q=1。

对于前 100% 的数据, 1 ≤ n; m ≤ 10000, 1 ≤ k; q; u; v ≤ n, 1 ≤ w ≤10000。

【题解】

建立一个炒鸡src,向所有着火的点连边权为0的边跑最短路。实际操作的时候可以直接把所有着火的点的dis设为0并放到堆中跑dij。

matrix

【问题描述】

⼩ Y ⼗分喜欢计数,⼀天他遇到了这样的⼀个问题:

有⼀个 n ⾏ m 列的矩阵,刚开始每个位置的数字都是 0。⼩ Y ⾸先进⾏ r 次这样的操作,选择⼀⾏ (可与之前选择重复) 把这⼀⾏的每个数字+1。之后⼩ Y 进⾏ c 次这样的操作,选择⼀列 (可与之前选择重复) 把这⼀列的每个数字 +1。

最后⼩ Y 数了⼀下,矩阵⾥总共有 k 个位置的数字是奇数。

但是⼩ Y 忘了之前是怎么操作的了,所以现在⼩ Y 想知道有多少种操作⽅案能够使得最后⼀共有 k 个位置的数字是奇数。

两种操作⽅案不同当且仅当存在某⾏或某列进⾏操作的次数不同。

因为答案很⼤,所以只需输出这个答案除以 109 + 7 的余数。

【输入格式】

输⼊包含⼀⾏五个空格隔开的整数, n,m,r,c,k。

【输出格式】

输出包含⼀个整数,表⽰答案。

【样例输入】

2 2 2 2 4

【样例输出】

4

【数据规模和约定】

对于 20% 的数据, 1 ≤ n; m; r; c ≤ 4;

对于 50% 的数据, 1 ≤ n; m; r; c ≤ 2000;

对于 100% 的数据, 1 ≤ n; m; r; c ≤ 10^5; 0 ≤ k ≤ nm。

【题解】

很值得思考很有趣的一道题。

我们先假设矩阵操作后,有x行操作了奇数次,有y列操作了奇数次。

那么不难列出x(m-y)+y(n-x)=k,即mx+ny=k+2xy。我们可以枚举x而推出y,从而得出所有合法的x和y。这里给出根据x求y的式子:\(\displaystyle y=\frac{k-mx}{n-2x}\),很容易推出来。

但是我们观察到分母是\(n-2x\),如果\(n-2x=0\)那么怎么办?

我们可以考虑,当\(n-2x=0\)时,相当于操作完所有的行后,恰好有一半的行是奇数,另一半的行是偶数。那么如果再操作列,奇数元素的数量是不改变的。。所以当2k=mn时,y可以取任意合法值,否则y无解。

注意到还有\(m-2y=0\)的情况,也要考虑一下。我们可以直接枚举x求y枚举y求x,把所有合法的(x,y)塞到一个set里不就得了。。。其实最完美的做法是只枚举x,并判断那种情况。但是这里再告诉你一个事实,其实那种情况只需要判断是否有2k=mn即可,如果有,那么那种情况一定存在,且其他情况不存在。这个结论可以通过GeoGebra探索出来。

我们处理出所有合法的(x,y)后,就枚举刚才处理的所有(x,y)并计算贡献。显然的是行和列的贡献是独立的,这里只考虑行的贡献。首先我们一共有n行,最后有x行被操作奇数次,那么方案数为\(\mathrm{C}_{n}^x\)。我们先把这x次操作干完,然后剩下的就可以每两个操作组成一对去操作同一行,操作完成之后那行还是偶数,一共有\(\displaystyle\frac {r-x}{2}\)个操作对。由于每一行可以操作多次,那么就是多重集的组合数:\(\mathrm{C}_{n+\frac{r-x}{2}-1}^{\frac{r-x}{2}}\)了。

所以最后一个(x,y)的贡献为\(\mathrm{C}_{n}^x\times\mathrm{C}_{n+\frac{r-x}{2}-1}^{\frac{r-x}{2}}\times\mathrm{C}_{m}^y\times\mathrm{C}_{m+\frac{c-y}{2}-1}^{\frac{c-y}{2}}\)。答案为所有(x,y)的贡献。

注意如果\(r-x\)或者\(c-y\)不是偶数,那么贡献为0

转载于:https://www.cnblogs.com/oier/p/9776024.html

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

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

相关文章

koa --- 跨域,解析POST参数、路由配置

目标 将开发中经常遇见的问题写在这里方便查询. 使用Koa创建一个简单的服务器 const Koa require("koa"); const app new Koa(); app.listen(3000, () >{console.log("[server] Server is running at http://localhost:3000") })使用koa2-cors解决…

mysql数据库常用操作

目前最流行的数据库: oracle、mysql、sqlserver、db2、sqline --:单行注释 #:也是单行注释 /* 注释内容*/:多行注释 mysql -uroot -p密码:登录mysql service mysqld restart重启mysql /etc/my.cnfmysql的配置文件 /var…

数码相机控制点的自动定位检校

为简化控制场相机检校中的人工量测控制点的繁琐工作,提高相机检校精度,本文提出一种方法:只需均匀量测少量控制点的像方坐标获取相机检校初始参数,便可通过动态模板匹配实现单影像相机检校的控制点高精度自动定位检校。实验证明此方法检校精度与人工量测检校精度相近。 https:/…

Java 常用类

Java 常用类 字符串相关类 String类:构造字符串对象 常量对象:字符串常量对象是用双引号括起的字符序列。 例如:”你好”、”12.97”、”boy”等。 字符串的字符使用Unicode字符编码,一个字符占两个字节 String类较常用构…

koa --- restful规范及其栗子

遵循Restful规范的简单的栗子 前端代码: <html><head><script src"https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script><script src"https://unpkg.com/element-ui/lib/index.js"></script><script src&qu…

软工五:四则运算

题目要求 本次作业要求两个人合作完成&#xff0c;驾驶员和导航员角色自定&#xff0c;鼓励大家在工作期间角色随时互换&#xff0c;这里会布置两个题目&#xff0c;请各组成员根据自己的爱好任选一题。 题目一&#xff1a; 我们在刚开始上课的时候介绍过一个小学四则运算自动生…

Tomcat 配置Https

https://www.cnblogs.com/wanghaoyuhappy/p/5267702.html JDK1.8 keytool 生存证书 C:\keys\tomcat.keystore 1:证书生成 命令如下: keytool -genkey -alias tomcat -keypass 123456 -keyalg RSA -keysize 1024 -keystore C:/keys/tomcat.keytore -storepass 123456 keytool 使…

koa --- 使用koa-multer和element-ui组件上传头像

文件上传 前端代码 <script src"https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <script src"https://unpkg.com/element-ui/lib/index.js"></script> <linkrel"stylesheet"href"https://unpkg.co…

PKUSC2018训练日程(4.18~5.30)

(总计:共66题) 4.18~4.25&#xff1a;19题 4.26~5.2&#xff1a;17题 5.3~5.9: 6题 5.10~5.16: 6题 5.17~5.23: 9题 5.24~5.30: 9题 4.18 [BZOJ3786]星系探索(伪ETT) [BZOJ4337][BJOI2015]树的同构(树的最小表示法) [BZOJ3551][ONTAK2010]Peaks(加强版)(Kruskal重构树,主席树) …

笔记:less的三种使用方法

直接在浏览器端使用 第一步&#xff0c;引入 .less 文件&#xff08;注意要将 rel 属性设置为“stylesheet/less”&#xff09; <link rel"stylesheet/less" type"text/css" href"styles.less" /> 第二步&#xff0c;引入Less.js文件 <…

koa --- nunjucks在Koa中的使用、中间件的配置

Nunjucks在Koa中的应用 app.js const koa require(koa); const app new koa(); const router require(./router) const nunjucks require(koa-nunjuncks-2); app.use(nunjucks({ext: html, // 指定视图文件默认后缀path: path.join(__dirname, views), // 指定视图目录…

2018福大软工实践第六次作业

目录 NABCD分析引用N(Need&#xff0c;需求)&#xff1a;A(Approach&#xff0c;做法)&#xff1a;B(Benefit&#xff0c;好处)&#xff1a;C(Competitors&#xff0c;竞争)&#xff1a;D(Delivery&#xff0c;交付)&#xff1a;初期中期个人贡献分评定原则评定细则本组现场答辩…

day32—CSS多列布局学习

转行学开发&#xff0c;代码100天——2018-04-17 关于多列布局&#xff0c;前期已经梳理过&#xff0c;今天的培训课程学习中再次提及&#xff0c;趁此也做个总结和检验。 多列布局的介绍参考&#xff1a; day08—css布局解决方案之多列布局关于多列布局的类型和方法&#xff1…

JDBC 事物处理

JDBC 事物处理 •事务&#xff1a;指构成单个逻辑工作单元的操作集合 •事务处理&#xff1a;保证所有事务都作为一个工作单元来执行&#xff0c;即使出现了故障&#xff0c;都不能改变这种执行方式。当在一个事务中执行多个操作时&#xff0c;要么所有的事务都被提交(commit…

centos6上安装mysql8.0版本

本博客是采用yum源的方式安装&#xff0c;非常的方便和快捷。(redhat 与centos7 等操作系统都可以采用此方法&#xff0c;步骤大体一致) mysql官网地址: https://dev.mysql.com 开始安装&#xff1a; 1.清理环境&#xff0c;查看有没有之前安装过的mysql记录&#xff0c;清理…

koa --- 使用koa-multer上传文件+elementUI

核心代码 const upload require(koa-multer) ({dest: ./public/images}); router.post(/upload, upload.single(file), ctx>{console.log(file, ctx.req.file);console.log(body, ctx.req.body);ctx.body 上传成功; })目录结构如下 基本思路 1.通过浏览器访问url: http:…

[bzoj4003][JLOI2015]城池攻占_左偏树

城池攻占 bzoj-4003 JLOI-2015 题目大意&#xff1a;一颗n个节点的有根数&#xff0c;m个有初始战斗力的骑士都站在节点上。每一个节点有一个standard&#xff0c;如果这个骑士的战斗力超过了这个门槛&#xff0c;他就会根据城池的奖励增加自己的战斗力。具体地&#xff1a;每一…

Java Web Servlet

Java Web Servlet Servlet是在服务器上运行的小程序。一个Servlet就是一个Java类&#xff0c;并且可以通过“请求-响应”编程模型来访问的这个驻留在服务器内存里的Servlet程序。 Servlet可完成以下功能&#xff1a; 读取客户端&#xff08;浏览器&#xff09;发送的显式的数…

第二篇 python基础知识总结:数据、运算符

引子 我们跟任何人交流&#xff0c;说的每一句都是都一些文字组成&#xff0c;包含名词、动词、语句、标点符号等&#xff0c;组成我们说普通话构成的基本要素。同理我们学习python语言也要明白这些基本要素&#xff0c;也就是我们常说的基本语法&#xff0c;这是我们必须掌握的…

【BZOJ1797】[AHOI2009]最小割(网络流)

【BZOJ1797】[AHOI2009]最小割&#xff08;网络流&#xff09; 题面 BZOJ洛谷 题解 最小割的判定问题&#xff0c;这里就当做记结论吧。&#xff08;源自\(lun\)的课件&#xff09; 我们先跑一遍最小割&#xff0c;求出残量网络。然后把所有还有流量的边拿出来跑\(Tarjan\)缩\(…