10.8 wtx模拟题题解
填坑
orz w_x_c_q
w_x_c_q的模拟赛(150pts,炸了)
money
题目背景:
王小呆又陷入自己的梦里。(活在梦里。。。)
题目描述:
王小呆是一个有梦想的小菜鸡,那就是赚好多好多的钱。现在机会来了,在他面前是一个迷宫,一共有N个点,M条路,王小呆可以在这些路上随便走,并且最重要的是,这些路上都有着数额不同的钱,王小呆每走过一条路,就可以得到这条路上所有的钱(我们认为王小呆特别贪婪,所以他用来装钱的袋子是无穷大的。。。),因为王小呆的梦很神奇,所以当一条路上的钱被他取走之后,这条路上又会出现一些新的钱,数量为原来钱的数量乘上这条路的“恢复系数”,向下取整。
比如,一条路上有4块钱,这条路的“恢复系数”为0.7,则先后四次经过这条路能得到的钱分别为:4,2,1,0。
现在王小呆在第S个点。因为王小呆还没有意识到自己活在梦里,所以他依旧十分兴奋,然而他的智商又不够,只能请聪明的你帮助他计算出他一共能够拿到多少钱。
注意:所有的边全部是单向边。不然岂不是沙比题???
输入输出格式:
输入格式:第一行,N和M。
第2……M+1行,每行四个数字,分别表示一条路的起点,终点,初始钱数,恢复系数。
第M+2行,一个整数S。
输出格式:一个数字,表示最多能拿到多少钱。
输入输出样例:
输入样例:
3 3
1 2 4 0.5
1 3 7 0.1
2 3 4 0.6
1
输出样例:
8
对于 0%的数据,保证是样例
对于 30% 的数据 保证n<=10
对于另外 30% 的数据 保证恢复系数为0(良心)
对于 100% 的数据,保证N<=50000,M<=100000,0.1<=恢复系数<=0.8且仅有一位小数
保证 1<=S<=N不保证数据没有坑。std没有考虑自边和重边以及不连通,是过掉的...所以请大家当做无重边无自环做即可。
题解:
在同一强连通分量里所有点之间的边可以全部吃光。
所以我们Tarjan缩点成一个DAG,点权为强连通分量内所有边的吃光的权值,边权为原来的边的第一次权值,在DAG上拓扑排序DP即可。
Tarjan第一次默写,弹栈写错了。气死。。。
这里放一个tarjan弹栈的代码,以做备忘
if (dfn[x] == low[x])
{
v[x] = false;
cnt++;
f[x] = cnt;
while (s[top] != x)
{
f[s[top]] = cnt;
v[s[top]] = false;
top--;
}
top--;
}
dream
题目背景:
意识到自己活在梦里,是一件多么痛苦的事情。
活在梦里就像温水煮青蛙,慢慢地麻痹自己,慢慢地忘记自己的梦想和追求。王小呆意识到自己处在多么可怕的处境,所以他决心要逃出自己的梦,可是要逃出自己的梦,可没有那么简单。
题目描述:
为什么王小呆会困在自己的梦里,因为他被自己的畏惧所困住。(因为他困。。。)他在畏惧什么?他在畏惧一道难题,因为这道题太难了,但是这只是对于王小呆这个菜鸡,其他的大佬很快就切掉了这道题,就只有王小呆苦苦徘徊一直想不出正解,然后他就选择了麻痹自己,让自己进入了梦里。现在,王小呆逃出梦境的唯一方法就是解决这道难题,打破自己的恐惧,可是他的实力确实有限,于是来请教你,你能帮助他解决难题吗?
这道难题是求出:\(a^x\equiv1\pmod n\)的最小整数解
那么现在请你帮助王小呆完成任务,帮助他逃离梦境。
如果不存在方案使得 整除n,则输出“w_x_c_q is living in a dream”。
输入输出格式:
输入格式:第一行输入t,表示一共有t组数据。接下来t行,每行两个整数a和n
输出格式:共t行,一行一个数字表示方案数,若不存在符合条件的方案,输出“w_x_c_q is living in a dream”(不含双引号)。
输入输出样例:
输入样例
1
2 3
输出样例
2
所有数据保证 t=100
对于 0%的数据,保证是样例。
对于 10% 的数据,保证a,n<=10
对于 30% 的数据,保证a,n<=1000
对于 60% 的数据,保证a,n<=10000
对于 100% 的数据,保证a,n<=100000
另外,保证第一个测试点数据没有不合法情况。(即不会输出“w_x_c_q is living in a dream”)保证第二个测试点只有一组数据合法。保证第三个测试点所有数据均不合法。不保证数据没坑。
题解:
出题人说这是一道欧拉定理结论题。
欧拉定理:\(a^{\varphi(n)}\equiv1\pmod n\),当\(\gcd(a,n)=1\)成立。
证明过程一搜一大把,不写了。
这道题就是枚举\(\varphi(n)\)的所有约数\(x\),找最小的满足\(a^x\equiv1\pmod n\)的约数。
至于原因,出题人说无可奉告。。。
我写了个exbsgs的(第一次默写bsgs),但是根号向下取整,而且枚举得过少,直接挂掉70pts。最后数据出水了,那些暴力的都AC了。事实证明我的做法比std慢,但是比暴力快得不知道哪里去了。
考场上不要写您没写过的东西(除了您闲的没事)
hope
题目背景
人是要有梦想的,对吧。
现在呢,王小呆终于不再活在梦里,但是他还是一个有梦想的人,现在他的机房又要考试了,然而他又特别地想要考好。所以说,现在王小呆的梦想就是考好喽。知己知彼百战百胜,所以王小呆想要知道所有人的实力水平。我们约定:机房内的每一个人都有一个能力值记作\(a_i\) ,同时,每个人不可能总是在一个水平,总会有爆发的时候不是吗,所以每一个人还有一个激进值记作\(b_i\),也就是说每个人的水平可以由\(a_i\)变为\(a_i+b_i\)。现在王小呆把所有人的数据都找来了,但是他却犯难了,笨笨的王小呆哪里有脑子去从这些数据中找出他想知道的东西,所以他只好又厚着脸皮来找你帮忙了,那么现在你能帮助她再一次解决问题吗?
题目描述
现在王小呆已经准备好了每个人的数据分别为\(a_i\)和\(b_i\)。那么我们定义:
如果有两个人A和B,那么若出现了A的普通水平低于B的普通水平,但是A的高水平高于B的普通水平,然而B的高水平又高于A的高水平,则对答案产生一的贡献。
也就是说,现在你要求的是有多少对人 满足:\(a_A<a_B<a_A+b_A<a_B+b_B\)另外,我们认为在任何情况下,都不会出现两个人水平相同。
输入输出格式:
输入格式:第一行一个整数n,表示一共有n个人
接下来n行每行两个整数\(a_i,b_i\),意义同题。
输出格式:一行一个整数ans,表示一共有ans对符合条件的人。
输入输出样例:
输入样例:
3
1 2
2 2
5 1
输出样例:
1
样例解释,第一个人和第二个人是符合题目中的要求的,所以答案是1。
对于 30%的数据,保证n<=100
对于60%的数据,保证n<=1000
对于100%的数据,保证n<=30000
题解:树状数组,设\(x_i=a_i\),\(y_i=a_i+b_i\),那么要求的就是所有满足\(x_i<x_j<y_i<y_j\)的方案数。我们假设j的坐标确定,那么i的坐标满足:\(x_i<x_j,x_j<y_i<y_j\),先按这是一个区域。我们把坐标按照x排序,y用树状数组维护即可。
这其实是一道二维偏序的题。二维偏序一般都是第一维排序,第二维树状数组即可。
//树状数组就是一个不让你写线段树的东西
10.8 wtx模拟题题解的更多相关文章
- 10.9 guz模拟题题解
感谢@guz 顾z的题题解 考试共三道题,其中 第一题help共10个测试点,时间限制为 1000ms,空间限制为 256MB. 第二题escape共20个测试点,时间限制为1000ms2000ms, ...
- 2019.10.1 qbxt模拟题
第一题 考虑树上\(DP\),f[i][j][0/1]表示以\(i\)为根的子树,入读为零点的个数为\(j\),点\(i\)的入度为\(0\)/不为\(0\)时的方案数 转移的时候考虑\(u\)的一个 ...
- 10.11 NOIP模拟题(1)
/* 离散化 差分 */ #include<bits/stdc++.h> #define N 4000007 using namespace std; int n,ans; int tmp ...
- POJ - 1835 宇航员(模拟题)
问题描述: 宇航员在太空中迷失了方向,在他的起始位置现在建立一个虚拟xyz坐标系,称为绝对坐标系,宇航员正面的方向为x轴正方向,头顶方向为z轴正方向,则宇航员的初始状态如下图所示: 现对六个方向分别标 ...
- [题解+总结]NOIP2015模拟题2
// 此博文为迁移而来,写于2015年7月22日,不代表本人现在的观点与看法.原始地址:http://blog.sina.com.cn/s/blog_6022c4720102w72i.html 1.总 ...
- PAT甲题题解-1095. Cars on Campus(30)-(map+树状数组,或者模拟)
题意:给出n个车辆进出校园的记录,以及k个时间点,让你回答每个时间点校园内的车辆数,最后输出在校园内停留的总时间最长的车牌号和停留时间,如果不止一个,车牌号按字典序输出. 几个注意点: 1.如果一个车 ...
- 《ACM国际大学生程序设计竞赛题解Ⅰ》——模拟题
这篇文章来介绍一些模拟题,即一类按照题目要求将现实的操作转换成程序语言. zoj1003: On every June 1st, the Children's Day, there will be a ...
- PAT甲题题解-1088. Rational Arithmetic (20)-模拟分数计算
输入为两个分数,让你计算+,-,*,\四种结果,并且输出对应的式子,分数要按带分数的格式k a/b输出如果为负数,则带分数两边要有括号如果除数为0,则式子中的结果输出Inf模拟题最好自己动手实现,考验 ...
- PAT甲级 模拟题_C++题解
模拟题 PAT (Advanced Level) Practice 模拟题 目录 1008 Elevator (20) 1042 Shuffling Machine (20) 1046 Shortes ...
随机推荐
- java中如何将OutputStream转换为InputStream
在不需要文件生成的情况下,直接将输出流转换成输入流.可使用下面的三种方法: 如果你曾经使用java IO编程,你会很快碰到这种情况,某个类在OutputStream上创建数据而你需要将它发送给某个需要 ...
- java--构造器与static
原本无显示编码构造器,则有一个默认的隐式(隐藏的无参构造器),但是,当显示指定了构造器,则这个默认隐式的构造器将不存在,比如此时无法new无参的构造器(除非显示地编写声明无参的构造函数). 如果子类构 ...
- webscheduler 开源定时服务和延迟服务
源码地址:https://gitee.com/eabeat/webscheduler 架构上采用 asp.net + access ,实现简单的管理界面,可以维护调用API,查看日志等功能.内核采用Q ...
- 第十四章 Spring MVC的工作机制与设计模式(待续)
Spring MVC的总体设计 Control设计 Model设计 View设计 框架设计的思考 设计模式解析之模版模式
- Java中Object.hashCode contract
面试时在这个问题上犯了个错误,只重写了equals方法,而没有覆盖hashCode()方法. 回来重读了Effective Java的Item 9,里面提到Object.hashCode contra ...
- 类型:Ajax;问题:ajax调用ashx参数获取不到;结果:ashx文件获取$.ajax()方法发送的数据
ashx文件获取$.ajax()方法发送的数据 今天在使用Jquery的ajax方法发送请求时,发现在后台中使用ashx文件无法接收到ajax方法中传递的参数,上网查了一下原因后发现了问题所在,原来是 ...
- leetcode860
使用C++进行编码: bool lemonadeChange(vector<int>& bills) { ; ; ; int N = bills.size(); ; i < ...
- 用UltraISO把硬盘文件制作成ISO格式
转自:https://wenku.baidu.com/view/0052c88dcc22bcd126ff0cbf.html 用UltraISO把硬盘文件制作成ISO格式方法: 制作硬盘ISO文件步骤一 ...
- LAMP 3.1 mysql的root密码重置
给mysql设置密码 /usr/local/mysql/bin/mysql -uroot 可以直接登录mysql 设置密码 /usr/local/mysql/bin/mysqladmin -uroot ...
- css 层叠式样式表(3)
样式分类 大小 -- 调整div大小,长 width,高 height.长可以直接100%横向沾满屏幕,高不可以. 背景 background-color 背景色 background-image ...