心路历程

预计得分:\(100 + 40 + 30 = 170\)

实际得分:\(100 +100 + 50 = 250\)

辣鸡数据毁我青春

T1一眼不会做感觉要凉

T2好像一波折半搜索就做完了

T3好像是神仙题不会做。。

打完T1暴力后去淦T2,结果最后在排序的时候把greater<LL>()写成了greater<int>(),不过感谢辣鸡数据放我一条活路。。

手玩了一下T1发现根本不需要决策,只算算期望就行了,然后大胆猜了个结论就不管了

这时候大概还剩\(1.5h\),感觉T3一定是个不可做题于是手动把难度加了两个档次。。

明明能\(O(1)\)算出来的我非要推个\(O(10^8)\)的组合数。于是就凉了。。

Sol

T1

直接算期望是对的。

证明的话可以设每个决策的概率然后算一下贡献。发现其中一种决策一定不会比另一种优

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
using namespace std;
const int MAXN = 1001, INF = 1e9 + 10;
inline int read() {
char c = getchar(); int x = 0, f = 1;
while(c < '0' || c > '9') {if(c == '-') f = -1; c = getchar();}
while(c >= '0' && c <= '9') x = x * 10 + c - '0', c = getchar();
return x * f;
}
int N;
double P[MAXN][MAXN], ans, f[MAXN][MAXN];
int main() {
freopen("game.in", "r", stdin);
freopen("game.out", "w", stdout);
N = read();
for(int i = 1; i <= N; i++) for(int j = 0; j <= i - 1; j++) scanf("%lf", &P[i][j]);
memset(f, 0, sizeof(f));
f[0][0] = 1;
for(int i = 1; i <= N; i++)
for(int j = 0; j < i; j++)
f[i][j + 1] += f[i - 1][j] * P[i][j],
f[i][j] += f[i - 1][j] * (1 - P[i][j]);
for(int i = 1; i <= N; i++) ans += i * f[N][i];
printf("%.2lf", ans);
return 0;
}

T2

折半搜索板子题。。

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<vector>
#define LL long long
using namespace std;
const int MAXN = 3e6 + 10, INF = 1e9 + 10, mod = 0;
inline int read() {
char c = getchar(); int x = 0, f = 1;
while(c < '0' || c > '9') {if(c == '-') f = -1; c = getchar();}
while(c >= '0' && c <= '9') x = x * 10 + c - '0', c = getchar();
return x * f;
}
LL N, M, st[2][MAXN], t[2], a[MAXN];
vector<LL> res;
void dfs(int x, int Lim, LL val, int opt) {
if(x == Lim) {st[opt][++t[opt]] = val; return ;}
dfs(x + 1, Lim, val + res[x], opt);
dfs(x + 1, Lim, val, opt);
}
void solve(int l, int r, int opt) {
res.clear();
for(int i = l; i <= r; i++) res.push_back(a[i]);
dfs(0, res.size(), 0, opt);
}
int main() {
freopen("cake.in", "r", stdin);
freopen("cake.out", "w", stdout);
N = read(); M = read();
for(int i = 1; i <= N; i++) a[i] = read();
int mid = N / 2;
solve(1, mid, 0); solve(mid + 1, N, 1);
sort(st[0] + 1, st[0] + t[0] + 1, greater<int>());
sort(st[1] + 1, st[1] + t[1] + 1);
int j = 1; LL ans = 0;
for(int i = 1; i <= t[0]; i++) {
while((j + 1 <= t[1]) && (st[0][i] + st[1][j + 1] <= M)) j++;
if(st[0][i] + st[1][j] <= M) ans = max(ans, st[0][i] + st[1][j]);
}
cout << M - ans;
return 0;
}

T3

比着学弟的代码抄了一下午发现他写的是假的qwq

心态爆炸。。

11.5NOIP模拟赛解题报告的更多相关文章

  1. 11.1NOIP模拟赛解题报告

    心路历程 预计得分:\(100 + 100 + 50\) 实际得分:\(100 + 100 + 50\) 感觉老师找的题有点水呀. 上来看T1,woc?裸的等比数列求和?然而我不会公式呀..感觉要凉 ...

  2. 11.7NOIP模拟赛解题报告

    心路历程 预计得分:\(50 + 100 + 100\) 实际得分:\(50 + 100 +100\) T2 T3两道数据结构题美滋滋,然而写完就过去\(3h\)美滋滋 T1数学题学弟们都会做Orzz ...

  3. 11.6NOIP模拟赛解题报告

    心路历程 预计得分:\(100 + 100 + 100 = 300\) 实际得分:\(100 +100 +100 = 300\) 学OI两年终于AK了一次qwq(虽然题目炒鸡水..) 纪念一下这令人激 ...

  4. 10.30 NFLS-NOIP模拟赛 解题报告

    总结:今天去了NOIP模拟赛,其实是几道USACO的经典的题目,第一题和最后一题都有思路,第二题是我一开始写了个spfa,写了一半中途发现应该是矩阵乘法,然后没做完,然后就没有然后了!第二题的暴力都没 ...

  5. 20201101gryz模拟赛解题报告

    写在前面 2020rp++ 停课的第一场模拟赛 拿上一年的上一年的day1来考的, 结果得分期望220pts,实际135pts,rank3,太菜了 考着考着机房灯突然灭了,当时慌的一批 以为断电代码要 ...

  6. 2018.10.26NOIP模拟赛解题报告

    心路历程 预计得分:\(100 + 100 + 70\) 实际得分:\(40 + 100 + 70\) 妈妈我又挂分了qwq..T1过了大样例就没管,直到临考试结束前\(10min\)才发现大样例是假 ...

  7. 2018.10.17NOIP模拟赛解题报告

    心路历程 预计得分:\(100 + 100 +100\) 实际得分:\(100 + 100 + 60\) 辣鸡模拟赛.. 5min切掉T1,看了一下T2 T3,感觉T3会被艹爆因为太原了.. 淦了20 ...

  8. 2018.10.16 NOIP模拟赛解题报告

    心路历程 预计得分:\(100 + 100 + 20 = 220\) 实际得分:\(100 + 100 + 30 = 230\) 辣鸡模拟赛.. T1T2都是一眼题,T3考验卡常数还只有一档暴力分. ...

  9. 20201115gryz模拟赛解题报告

    写在前面 T1:期望100pts,实际0pts(7:50 ~ 8:50 T2:期望0pts,实际0pts(10:00 ~ 10:35 T3:期望20pts,实际40pts( 9:10 ~ 10:00, ...

随机推荐

  1. chrome cpu占用100%

    参考原文地址:https://stackoverflow.com/questions/20276097/chrome-devtools-100-cpu 问题描述,chrome打开devtools开发者 ...

  2. mysql 快照读MVCC

    mysql的读分快照读和当前读 快照读 是指写的同时,读不阻塞,达到并发的作用 这时候的读 是 记录的历史版本,存在于undo里,当然回滚时就的也是这个undo 当执行一条update语句时,记录本身 ...

  3. 对cors的理解

    一.简介 CORS需要浏览器和服务器同时支持.目前,所有浏览器都支持该功能,IE浏览器不能低于IE10. 整个CORS通信过程,都是浏览器自动完成,不需要用户参与.对于开发者来说,CORS通信与同源的 ...

  4. FPGA基础学习(7) -- 内部结构之CLB

    目录 1. 总览 2. 可配置逻辑单元 2.1 6输入查找表(LUT6) 2.2 选择器(MUX) 2.3 进位链(Carry Chain) 2.4 触发器(Flip-Flop) 参考文献: 一直以来 ...

  5. 如何统计Visual Studio Code项目的代码行数

    背景 年底到了,公司一年一度做述职报告的时间又到了,每到此时小伙伴们都想方设法的去做一些代码层面的汇总.在此交给大家个小妙招,走过路过不要错过哈,, 解决方案 使用Visual Studio Code ...

  6. vscode安装golang插件失败问题

    vscode安装golang插件失败问题 dlv go-outline go-symbols gocode-gomod gocode 代码补全 godef 代码跳转 golint gopkgs gor ...

  7. 浅解bootstrap 下拉框插件

    最近的业务需求是把后台数据渲染到前端,其中有一个是复选框数组,前端选择渲染的方式是bootstrap的下拉插件 渲染完成之后,此时会在原有select同级上面生成buton,dropdown-menu ...

  8. python 使用缓存加快运算

    from functools import lru_cache import time from functools import wraps def clock(func): @wraps(func ...

  9. 更新Mac双系统多分区

    前言制作Mac USB系统安装盘安装Mac OS 10.12制作win10 USB系统安装盘安装win10windows多分区实现 前言 同事有一台mac pro,系统是mac os 10.9+win ...

  10. Go语言包管理工具Glide

      Go语言包管理工具用于管理Go项目的库和库的依赖引用. 包管理工具普遍会在Go项目根目录生成Vendor文件夹并自动下载该Go项目需要的库. Go语言有很多开源的包管理工具,这里主要介绍Glide ...