2019/11/8 CSP模拟
T1 药品实验
内网#4803
由概率定义,有$$a + b + c = 0$$
变形得到$$1 - b = a + c$$
根据题意有$$p_i = a p {i - 1} + b p_i + c p{i + 1}$$
\]
\]
\]
仔细观察一下发现这对于任何\(i\)都适用,也就是说\(p\)序列的差分序列有一些优秀的性质
设\(d\)为\(p\)的差分序列,\(k\)为\(d\)的公比即\(\frac{a}{c}\),那么有$$a* d_i = c * d_{i + 1}$$
即$$\frac{d_{i + 1}}{d_i} = \frac{a}{c}$$
\(d\)是一个等比数列,求\(p_n\)即求\(\sum\limits_{i = 1}^n d_i\),由等比数列求和公式得到
\]
\]
\(O(log(n))\)求快速幂即可
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int mod = (int)1e9 + 7;
ll n, alpha, beta, a, c, ans;
ll qpow(ll a, ll b) {ll ans = 1; for (; b; b >>= 1) {if (b&1) ans = (a * ans) % mod; a = (a * a) % mod;} return ans % mod;}
int main() {
cin >> n >> alpha >> beta;
a = ((1 - alpha) * beta) % mod, c = alpha * (1 - beta) % mod;
ans = qpow(c, mod - 2) * a % mod; ans = qpow(ans, n) % mod + 1; ans = qpow(ans, mod - 2) % mod;
printf("%lld", ans);
return 0;
}
T2 小猫钓鱼
内网#4804
被自己sb到了,\(s\)没跟着离散化 \(100pts -> 10pts\)
#include<bits/stdc++.h>
#define N (100000 + 10)
using namespace std;
inline int read(){
int cnt = 0, f = 1; char c = getchar();
while (!isdigit(c)) {if (c == '-') f = -f; c = getchar();}
while (isdigit(c)) {cnt = (cnt << 3) + (cnt << 1) + (c ^ 48); c = getchar();}
return cnt * f;
}
int T, n, m, s, l, a[N], b[N], cnt, tot, inq[N], kil[N], r;
deque <int> q[205], q2, t;
void pre_work() {
sort (b + 1, b + cnt + 1);
int q = unique(b + 1, b + cnt + 1) - b - 1;
for (register int i = 1; i <= cnt; ++i) a[i] = lower_bound(b + 1, b + q + 1, a[i]) - b;
s = lower_bound(b + 1, b + q + 1, s) - b;
}
int main() {
// freopen("fishing.in", "r", stdin);
// freopen("fishing.out", "w", stdout);
while (1) {
n = read(), m = read(), l = read(), s = read(), T = read();
tot = n; cnt = 0; r = 0;
if (n == -1) break;
memset(inq, 0, sizeof inq);
for (register int i = 1; i <= n; ++i) while (q[i].size()) q[i].pop_back();
while (q2.size()) q2.pop_back();
while (t.size()) t.pop_back();
for (register int i = 1; i <= n; ++i)
for (register int j = 1; j <= l; ++j) a[++cnt] = b[cnt] = read();
a[++cnt] = b[cnt] = s;
pre_work();
for (register int i = 1; i <= n; ++i)
for (register int j = 1; j <= l; ++j) q[i].push_back(a[(i - 1) * l + j]);
while (T-- && tot > 1) { //every round
++r;
for (register int i = 1; i <= n; ++i) { // every person
if (q[i].empty()) continue;
int cur = q[i].front(); q[i].pop_front();
q2.push_back(cur); ++inq[cur];
if (cur == s && q2.size() > 1) { // if cur is J
while (!q2.empty()) t.push_back(q2.back()), --inq[q2.back()], q2.pop_back();
while (!t.empty()) q[i].push_back(t.back()), t.pop_back();
}
if (inq[cur] > 1 && cur != s && q2.size() > 1) {
while (inq[cur] && q2.size()) //pop from back
t.push_back(q2.back()), --inq[q2.back()], q2.pop_back();
while (!t.empty()) q[i].push_back(t.back()), t.pop_back();
}
if (q[i].empty()) --tot, kil[i] = r;
}
}
for (register int i = 1; i <= n; ++i) printf("%d ", q[i].size() ? q[i].size() : -kil[i]);
puts("");
for (register int i = 1; i <= n; ++i) {
while (q[i].size()) {printf("%d ", b[q[i].front()]); q[i].pop_front();}
puts("");
}
}
return 0;
}
T3
太毒瘤了所以咕了
2019/11/8 CSP模拟的更多相关文章
- 2019/11/12 CSP模拟赛&&考前小总结
写在前面的总结 离联赛只有几天了,也马上就要回归文化课了. 有点舍不得,感觉自己的水平刚刚有点起色,却又要被抓回文化课教室了,真想在机房再赖几天啊. 像19/11/11那场的简单题,自己还是能敲出一些 ...
- 2019/11/1 CSP模拟
写在前面的反思 该拿的部分分还是得拿完啊,因为懒+动作慢没有写最后一道题的菊花图和链的情况,其实这两个点并不难.. 虽然只有\(10pts\),但是已经足够往上爬一截了啊,额外的\(10pts\)在今 ...
- 2019/10/17 CSP模拟 总结
T1 补票 Ticket 没什么好说的,不讲了 T2 删数字 Number 很后悔的是其实考场上不仅想出了正解的方程,甚至连优化都想到了,却因为码力不足只打了\(O(n^2)\)暴力,甚至还因为细节挂 ...
- 2019.11.9 csp-s 考前模拟
2019.11.9 csp-s 考前模拟 是自闭少女lz /lb(泪奔 T1 我可能(呸,一定是唯一一个把这个题写炸了的人 题外话: 我可能是一个面向数据编程选手 作为一个唯一一个写炸T1的人,成功通 ...
- 『2019/4/9 TGDay2模拟赛 反思与总结』
2019/4/9 TGDay2模拟赛 今天是\(TG\)模拟赛的第二天了,试题难度也是相应地增加了一些,老师也说过,这就是提高组的难度了.刚开始学难的内容,一道正解也没想出来,不过基本的思路也都是对了 ...
- 『2019/4/8 TGDay1模拟赛 反思与总结』
2019/4/8 TGDay1模拟赛 这次是和高一的学长学姐们一起参加的\(TG\)模拟考,虽然说是\(Day1\),但是难度还是很大的,感觉比\(18\)年的\(Day1\)难多了. 还是看一下试题 ...
- 11.7 NOIP模拟赛
目录 2018.11.7 NOIP模拟 A 序列sequence(two pointers) B 锁lock(思路) C 正方形square(埃氏筛) 考试代码 B C 2018.11.7 NOIP模 ...
- 11/1 NOIP 模拟赛
11.1 NOIP 模拟赛 期望得分:50:实际得分:50: 思路:暴力枚举 + 快速幂 #include <algorithm> #include <cstring> #in ...
- EOJ Monthly 2019.11 E. 数学题(莫比乌斯反演+杜教筛+拉格朗日插值)
传送门 题意: 统计\(k\)元组个数\((a_1,a_2,\cdots,a_n),1\leq a_i\leq n\)使得\(gcd(a_1,a_2,\cdots,a_k,n)=1\). 定义\(f( ...
随机推荐
- asp.net Mvc 增删改查
1.创建项目 已经创建好项目了 2.创建数据库 使用这个数据库或者自己创建一个数据库,一个表就好,简单 USE [LearnAdminlte] GO /****** Object: Table [db ...
- java静态代理及动态代理(学习示例)
1.接口 public interface Channel { void send(); } 2.实现类(可以为各种不同实现) public class ChannelImpl implements ...
- jQuery冒泡事件阻止
JQuery 提供了两种方式来阻止事件冒泡. 方式一:event.stopPropagation(); $("#div1").mousedown(function(event){ ...
- Android中attrs.xml文件的使用详解
$*********************************************************************************************$ 博主推荐 ...
- 网格图必经点+dfs——cf1214D
先正着走一次把所有可行路径标记出来,然后倒着走两条路径,一条是能向下就向下的路径,另一条能向右就向右. 如果这两条路径相交,那么(1,1)-(n,m)路径上比有个必经点,把这个必经点封上,答案是1,如 ...
- thinkphp5选择redis库,让数据存入不同的redis库
thinkphp5选择redis库,让数据存入不同的redis库 在登录的时候把个人信息存入redis,选择redis库1号库, db1 读取redis里面的个人信息
- nginx填坑补充(nginx根据上下文跳转ip或者域名)
今天有一个需求,要根据上下文调到不同的ip或域名地址,使用上下文做域名跳转的时候,proxy_pass域名后面一定要带‘/’否则会把nginx的上下文自动带入,这样就行. location ^~ /d ...
- 树莓派自动播报温湿度到QQ空间、微博
原文链接 https://aoaoao.me/951.html 这是个比较无聊的应用...灵感来自于一个叫做“古城钟楼”的微博账号,此账号每天都会定点报时,除此之外没有其他任何内容,以此吸引了近50万 ...
- leetcode 1041——困于环中的机器人
描述: 在无限的平面上,机器人最初位于 (0, 0) 处,面朝北方.机器人可以接受下列三条指令之一: "G":直走 1 个单位 "L":左转 90 度 &quo ...
- kuangbin专题十三-基础计算几何
链接:https://cn.vjudge.net/contest/68968 POJ 2318 TOYS 题意:m个玩具落在n+1个区间,给你玩具的坐标,问每个区间有多少玩具. 思路:叉积的简单应用, ...