T1 药品实验

内网#4803

由概率定义,有$$a + b + c = 0$$

变形得到$$1 - b = a + c$$

根据题意有$$p_i = a p {i - 1} + b p_i + c p{i + 1}$$

\[\therefore (1 - b) p_i = a p_{i - 1} + c p_{i + 1}
\]

\[\therefore (a + c) p_i = a p_{i - 1} + c p_{i + 1}
\]

\[a(p_i - p_{i - 1}) = c(p_{i + 1} - p_i)
\]

仔细观察一下发现这对于任何\(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\),由等比数列求和公式得到

\[p_{2n} = d_1 * \frac{(k^n - 1)(k^n + 1)}{k - 1} = 1
\]

\[p_n = d_1 * \frac{1}{k^n + 1} = p_{2n} * \frac{1}{k^n + 1} = \frac{1}{k^n + 1}
\]

\(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模拟的更多相关文章

  1. 2019/11/12 CSP模拟赛&&考前小总结

    写在前面的总结 离联赛只有几天了,也马上就要回归文化课了. 有点舍不得,感觉自己的水平刚刚有点起色,却又要被抓回文化课教室了,真想在机房再赖几天啊. 像19/11/11那场的简单题,自己还是能敲出一些 ...

  2. 2019/11/1 CSP模拟

    写在前面的反思 该拿的部分分还是得拿完啊,因为懒+动作慢没有写最后一道题的菊花图和链的情况,其实这两个点并不难.. 虽然只有\(10pts\),但是已经足够往上爬一截了啊,额外的\(10pts\)在今 ...

  3. 2019/10/17 CSP模拟 总结

    T1 补票 Ticket 没什么好说的,不讲了 T2 删数字 Number 很后悔的是其实考场上不仅想出了正解的方程,甚至连优化都想到了,却因为码力不足只打了\(O(n^2)\)暴力,甚至还因为细节挂 ...

  4. 2019.11.9 csp-s 考前模拟

    2019.11.9 csp-s 考前模拟 是自闭少女lz /lb(泪奔 T1 我可能(呸,一定是唯一一个把这个题写炸了的人 题外话: 我可能是一个面向数据编程选手 作为一个唯一一个写炸T1的人,成功通 ...

  5. 『2019/4/9 TGDay2模拟赛 反思与总结』

    2019/4/9 TGDay2模拟赛 今天是\(TG\)模拟赛的第二天了,试题难度也是相应地增加了一些,老师也说过,这就是提高组的难度了.刚开始学难的内容,一道正解也没想出来,不过基本的思路也都是对了 ...

  6. 『2019/4/8 TGDay1模拟赛 反思与总结』

    2019/4/8 TGDay1模拟赛 这次是和高一的学长学姐们一起参加的\(TG\)模拟考,虽然说是\(Day1\),但是难度还是很大的,感觉比\(18\)年的\(Day1\)难多了. 还是看一下试题 ...

  7. 11.7 NOIP模拟赛

    目录 2018.11.7 NOIP模拟 A 序列sequence(two pointers) B 锁lock(思路) C 正方形square(埃氏筛) 考试代码 B C 2018.11.7 NOIP模 ...

  8. 11/1 NOIP 模拟赛

    11.1 NOIP 模拟赛 期望得分:50:实际得分:50: 思路:暴力枚举 + 快速幂 #include <algorithm> #include <cstring> #in ...

  9. 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( ...

随机推荐

  1. 生产者消费者模式-->线程

    #_author:来童星#date:2019/12/17#生产者消费者模式-->线程from queue import Queueimport random,time,threading#生产者 ...

  2. CSS3 @media 查询(制作响应式布局)

    这里简单说明一下@media 查询. 详细说明文档:http://www.runoob.com/cssref/css3-pr-mediaquery.html 使用 @media 查询,你可以针对不同的 ...

  3. Delphi 虚拟桌面

    Delphi创建虚拟桌面实现后台调用外部程序 核心提示:最近在做的一个软件,其中有一部分功能需要调用其它的软件来完成,而那个软件只有可执行文件,根本没有源代码,幸好,我要做的事不难,只需要在我的程序启 ...

  4. 关于RF中元素定位问题

    今天碰到一个定位元素的问题,用CLASS定位. 调试后是这样的情况: 显示定位正确,字体被覆盖了.完了,在RF中跑脚本的时候,报错,说没有找到元素 . 郁闷,各种试,还是没有定位到. 最好问前端,教我 ...

  5. 拾遗:vim 快捷键设置

    ~/.vimrc 零.批量注释与反注释 :sp / :vsp       横向 / 纵向拆分窗口 :e            打开新文件 zc:拆叠代码 / zo:展开代码 set foldmetho ...

  6. WAMP中的mysql设置密码(默认密码为空)及phpmyadmin的配置

    来自:  http://wenku.baidu.com/link?url=J4K28e1kt-_ykJLsOtS1b5T6hKj5IzL5hXSKIiB133AvPCUXLlxGKScsBsxi0mA ...

  7. 框架集 frameset

    框架集和内联框架的作用类似,都用于在一个页面中引入其他的外部的页面 框架集可以同时引入多个页面,而内联框架引入一个, 在h5标准中,推荐使用框架集,而不使用内联框架 使用 frameset 来创建一个 ...

  8. windows版nginx+ftp实现图片服务器的搭建

    配置图片服务器的一部分参数 resource.properties: #FTP\u76f8\u5173\u914d\u7f6e #FTP\u7684ip\u5730\u5740 FTP_ADDRESS ...

  9. CSRF攻击防御方法

    CSRF攻击防御方法 目前防御 CSRF 攻击主要有三种策略: 1. 验证 HTTP Referer 字段: 根据 HTTP 协议,在 HTTP 头中有一个字段叫 Referer,它记录了该 HTTP ...

  10. WSGI——python-Web框架基础

    1. 简介 WSGI ​ WSGI:web服务器网关接口,这是python中定义的一个网关协议,规定了Web Server如何跟应用程序交互.可以理解为一个web应用的容器,通过它可以启动应用,进而提 ...