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. SQL SELECT TOP, LIMIT, ROWNUM

    SQL SELECT TOP, LIMIT, ROWNUM SQL SELECT TOP 子句 SELECT TOP 子句用于指定要返回的记录数量. SELECT TOP子句在包含数千条记录的大型表上 ...

  2. linux IPC socket(2)

    使用bind来关联地址和套接字 #include <sys/types.h> #include <sys/socket.h> int bind(int sockfd, cons ...

  3. 超好用的thinkphp5.0/thinkphp5.1分页插件!详细使用步骤(内附代码)

    效果 tp5.0使用方法 page下载地址:进入下载页面 提取码:s75k 1,把page文件夹整个目录复制到 目录extend下 2,修改默认配置 app/config.php 把里面的 'pagi ...

  4. JS基础复习

      js基础语法     Netcape        js基础语法规范(ECMAScript1,2,3,3.1,5(IE9),6   ES    ES6=es2015) DOM BOM       ...

  5. gcc将c源文件中的宏展开

    1: sudo gcc -P -I. -I../instrument/stubs -I../instrument/stubs -I../ -E ctrl_xfer32.cc -o preprocess ...

  6. es-字段类型整理(6.x及以上)

    以下为主要的数据类型,特殊的或者比较冷门的不予关注: 类型分类 子分类 具体类型 核心类型 字符串 text,keyword 整数 byte,short,integer,long 浮点 double, ...

  7. git常用操作笔记

    这是我看了廖雪峰的git教程,写的笔记,仅作为一个学习的记录 一.大多数我们面临的是已经有一个进行中的项目了,我们只需克隆下来就可以了 1.安装git,安装完后,可输入git,回车,查看是否已安装 2 ...

  8. Django(九) xadmin全局配置

    xadmin的使用,首先需要对model进行注册,才能在后台管理中进行操作. 1.在app里创建py文件:adminx(必须这个名称) 2.导入xadmin和models里的类,格式如下: 其中lis ...

  9. Android的WebView通过JS调用java代码

    做项目时候会遇到我们用WebView 打开一个web,希望这个web可以调用自己的一些方法,比如我们在进一个web页面,然后当我们点击web上的某个按钮时,希望能判断当前手机端是否已经登录,如果未登录 ...

  10. Django完成常用四大功能

    返回主目录:Django框架 内容目录: 1.pycharm连接数据库及相应操作 2.手撸登录注册编辑删除 2.1 登录.注册 2.2 ORM简单操作 2.3 编辑.删除 3.完整代码 一.pycha ...