[2018.07.12 T1]B君的第一题

【动态规划】B君的多边形 描述 有一个正n多边形,我们要连接一些对角线,把这个多边形分成若干 个区域。要求连接的对角线不能相交,每个点可以连出也可以不连出对角 线。(即最终不要求所有区域均为三角形) 问总方案数mod (10^9+7)的结果。 输入 一行一个整数n 输出 一行一个整数表示答案。 样例输入 5 样例输出 11 提示 对于所有的的数据,满足n≤10^6 代码 这是一道找规律的题,没研究明白,先记着吧~ #include<iostream> using namespace std; long long inv 阅读详情

暂无链接

B君的第一题

【问题描述】

天台上的朋友让一让,让我先来。

世界杯开始了,B 君最近在关注一局季后赛。

在这局季后赛中,甲队和乙队将会进行至多 2n−12n−1 场比赛,谁先取得 nn 场胜利,谁便会获得最终的胜利。并且之后的比赛不会继续进行。

B 君很看好甲队,为了计算方便,B 君希望下注 22n−1 元,也就是说, 如果最终甲队先取得了nn 场胜利,B 君就会获得 22n−1 元。如果最终乙队先取得了nn 场胜利,B 君就会失去 22n−1 元。

但是事不如人愿,甲队和乙队水平旗鼓相当,每一场比赛,双方胜利的概率都是0.50.5,并且所有比赛的结果相互独立。

B 君对此坦然接受,认为自己获得 22n−122n−1 元的概率是 0.50.5,失去22n−122n−1 元的概率是 0.50.5, 期望收益是 00。

但是赌场的庄家并不允许这样做,必须每一场比赛单独下注,分别进行结算。

B 君很失望,但是他发现,存在唯一一种下注方式,达到自己最初的目的。

即如果最终甲队获胜,B 君各场的收益之和为 22n−1,如果最终乙队获胜,B 君各场收益之和为−22n−1−22n−1。

比如对于n=2n=2 来说,B 君可以选择在第一场下注44元,在第二场下注 44 元,在第三场下注8 元。

这样如果甲队或乙队赢了前两场,B 君直接获得或失去了88 元。

如果前两场甲乙一胜一负,那么 B 君不赔不赚,决胜局下注 8 元。

也就是说,无论甲以什么方式获胜,B 君都会获得 88 元。无论乙以什么方式获胜, B 君都会失去8 元。

特别的,B 君可以在看到前ii 场的结果之后,再给出第 i+1 场的下注,而不需要一 开始就给出所有场的下注情况。

对于输入输出,B 君会先告诉你nn,然后你来告诉B 君第一场比赛应该如何下注, 接下来 B 君告诉你第一场的结果。

你来告诉 B 君第二场比赛应该如何下注,依次类推。如果 B 君告诉你的结果已经导致了甲队或者乙队取得了 n 场胜利。

你不需要对这次结果做任何回复。

因此你输出的数字个数,和B 君告诉你比赛结果的个数相同。

你可以下注负数,表示下注乙队获胜,这样如果甲队失败便可获得回报。

这并不是一个交互题,每个回答的答案是唯一的。
【输入格式】

第一行一个数字 nn,即上文中所描述的n。

第二行是一些00 和 1,如果是00 表示甲队获胜,1表示乙队获胜。

保证这是一个合法的比赛过程,也就是说,当出现 00 的个数或 1 的个数达到nn 个之后, 便不会有更多输入了。

【输出格式】

输出若干个数字,一行一个。个数和输入的第二行数字个数相同,表示每场比赛的下注。

由于下注可能很大,你只需要输出模1000000007的结果即可。

即使想下注负数,也应该输出取模后的正余数。

可以证明下注的金额一定是整数。

可以证明解是唯一的。

【输入样例】

3
1 1 0 0 1

【输出样例】

12
12
8
16
32

【样例说明】

显然所有下注的和,要么是+22n−1+22n−1,要么是−22n−1−22n−1。

对于这场(−12)+(−12)+(8)+(16)+(−32)=−32=−25(−12)+(−12)+(8)+(16)+(−32)=−32=−25

【输入样例】

3
0 1 0 0

【输出样例】

12
12
16
16

【样例说明】

(12)+(−12)+(16)+(16)=32=25(12)+(−12)+(16)+(16)=32=25

你可以根据前两场的结果,来动态的决定第三场的下注。

输入的第二行长度并不确定,当输入nn个0或nn个1时结束。

【数据范围】

对于100%100%的数据,满足1≤n≤1000001≤n≤100000。

对于70%70%的数据,满足1≤n≤10001≤n≤1000。

对于30%30%的数据,满足1≤n≤61≤n≤6。

数据非常有梯度。

题解

以为数据有梯度是区分度很高的意思,部分分有就有,没有就没有,不存在强行造档的情况,所以考场代码如下:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    freopen("beijing.in","r",stdin);
    freopen("beijing.out","w",stdout);
    while(1)puts("sh*t");
}

然而出题人居然良心发现,“梯度”的意思居然是n=1,2,3n=1,2,3都有!,根据题目打个1,2,31,2,3的表都有1515分,令人窒息的操作。。。

唉,我dpdp还是太菜了,O(n2)O(n2)的dpdp都想不出来。。。

先考虑O(n2)O(n2)的dpdp吧,我们可以算算甲乙两队赢的概率,设dp[i][j]dp[i][j]为甲队胜ii场,乙队胜j场时,甲队取得最终胜利的概率,那么就有dp[i][j]=dp[i+1][j]+dp[i][j+1]2dp[i][j]=dp[i+1][j]+dp[i][j+1]2,即dp[i+1][j]−dp[i][j]=dp[i][j]−dp[i][j+1]dp[i+1][j]−dp[i][j]=dp[i][j]−dp[i][j+1],所以无论输赢,甲队的胜率变化是一样的。

初始情况dp[0][0]dp[0][0]胜率为1212,末状态为00或1,收益为−22n−1−22n−1或22n−122n−1,胜率每变化1212,收益变化22n−122n−1,那么对于一次变化ΔxΔx,我们就应该应该下注Δx1222n−1=2Δx×22n−1Δx1222n−1=2Δx×22n−1元。

然后我们就有了一个优秀的O(n2)dpO(n2)dp做法。

其实,获胜概率还可以用组合数算出来,考虑当甲队赢了ii场,乙队赢了j场时,对于剩下的res=2n−1−i−jres=2n−1−i−j场比赛,如果甲队取得了n−in−i或更多的场的胜利,就能获胜,所以甲队的胜率可以表示如下:

∑resk=n−i(resk)2res∑k=n−ires(resk)2res

组合意义很明显,赢得n−i∼resn−i∼res场的情况比上所有情况。

似乎还是无从下手,考虑我们dpdp的思路,如果甲队多赢了一场,胜率将变为:

∑2n−2−i−jk=n−i−1(2n−2−i−jk)22n−2−i−j∑k=n−i−12n−2−i−j(2n−2−i−jk)22n−2−i−j

如果乙队赢了:

∑2n−2−i−jk=n−i(2n−2−i−jk)22n−2−i−j∑k=n−i2n−2−i−j(2n−2−i−jk)22n−2−i−j

发现这两个式子的差只有一项:

(2n−2−i−jn−i−1)22n−2−i−j(2n−2−i−jn−i−1)22n−2−i−j

代入dpdp得到的结论中,可知我们应下注:

(2n−2−i−jn−i−1)22n−2−i−j×22n−1=21+i+j(2n−2−i−jn−i−1)(2n−2−i−jn−i−1)22n−2−i−j×22n−1=21+i+j(2n−2−i−jn−i−1)

可以预处理组合数,也可以一乘一除得到下一项,复杂度O(n)O(n)。

代码
#include<cstdio>
#define ll long long
using namespace std;
const int M=2e5+5,mod=1e9+7;
int inv[M],x,y,n,p;
ll C(int a,int b){ll ans=1;for(int i=0;i<b;++i)ans=ans*(a-i)%mod*inv[i+1]%mod;return ans;}
void in(){scanf("%d",&n);}
void ac()
{
    inv[1]=1;for(int i=2;i<=n+n;++i)inv[i]=1ll*inv[mod%i]*(mod-mod/i)%mod;
    x=y=n;ll ans=C(x+y-2,x-1)*2%mod;
    while(x>0&&y>0)
    {
        printf("%lld\n",ans);scanf("%d",&p);
        ans=ans*2*inv[x+y-2]%mod;
        if(p)ans=ans*--y%mod;else ans=ans*--x%mod;
    }
}
int main(){in();ac();}
君正T31x metartc集成测试 metartc为国内杨大侠部分开源的一款用于嵌入式领域webrtc库,它与谷歌官方webrtc相比,编译到君正平台的可执行文件仅有5M即可实现webrtc的通信。1. 目前实现的是基于开源版v5.0-b0版本做的简单修改,官方的好几个版本都多少缺点东西,我这里给整理了一下。目前是局域网连接的webrtc,后续尝试走stun和turn试一下NAT穿越的效果。 阅读详情

相关推荐

NOIP2018Day1T3——赛道修建

本质就是贪心,考试的时候太急了,有一些小错误没找出来,丢了50分。 首先二分答案,判断该长度下最多有几条路。 假设二分的这个答案为k。 dp[]表示以该节点为根的子树中最多有几条路。 more[]表示在保证子树中答案最优的情况下,一端为该节点,一端在子树中节点的最长的链。 很明显,对于一个节点,就有子节点个数条路径长度,如果这个值大于k,则dp[u]++,否则存入b[]中 对b排序,从小到大扫,...

Mi-Queen 727

[2018.07.12 T2] B君的第二题

暂无链接 B君的第二题 【问题描述】 申生在内而亡,重耳在外而安 考虑k+1k+1k + 1个数组a[i](0≤i≤k)a[i](0≤i≤k)a[i] (0 ≤ i ≤ k)。 为了方便起见,每个数组a[i]a[i]a[i]长度为nnn,下标从111开始。(直观来说就是第一维下标从000开始,第二维下标从1开始。) 其中a[i]a[i]a[i]时时刻刻是a[i−1](1≤i≤...

ShadyPi的IT笔记 542

星际对话:探秘极致低精度的BitNet b1.58 2B4T传奇

BitNet b1.58 2B4T不仅仅是一款高效的1-bit语言模型,它更像是一位勇敢的先行者,阐释了在极端量化条件下依然可以达到与全精度模型相媲美甚至超越的性能。通过架构重构——从Transformer到定制的BitLinear层;通过系统训练——从高学习率到低温冷却、从监督微调到直接偏好优化;以及通过专门的推理实现——针对GPU与CPU均开发优化内核,这一系列创新之举为众多研究者和开发者指明了一条全新的高效模型设计道路。探索更大规模(例如7B或13B参数量)1-bit模型的训练规律和性能极限;

步子哥的博客 1520

BZOJ 4706: B君的多边形 找规律

4706: B君的多边形 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=4706 Description 有一个正n多边形,我们要连接一些对角线,把这个多边形分成若干个区域。要求连接的对角线不能相交,每个点 可以连出也可以不连出对角线。(即最终不要求所有区域均为三角形)问总方案数mod (10^9+7)的结果。 Input 一行一个整数...

weixin_33889665的博客 252

2 君正底层API接口的封装1

君正的IPC芯片主要有T31、T40、T41等型号,每个型号的API接口大部分是相同的,但也存在一些不一致和差异化的地方。为了屏蔽不同芯片型号之间的差异,我们需要基于一个公共基类进行封装。在封装之前,我们需要定义自己的错误码和数据结构,用于屏蔽不同君正芯片的实现细节。为了确保整个IPC库使用统一的错误码,我们在HP_MPPErrorCode.h文件中专门定义了以下错误码。错误码囊括了参数错误、内存错误、溢出错误、不支持、密码错误、非法数据等各种异常情况。

hope_wisdom的技术博客 1587

(Root Explorer 3.3.5 (改) 3.0 凯旋

Root Explorer 3.3.5 (改) 3.0 凯旋,安卓手机管理利器。

OpenJudge超详细题解,动画图文题解

内容来源于微信公众号:大神编程。已经过原文作者授权。 更新时间:2020-7-5 因为OpenJudge题库和一本通题库很多题都是一样,所以很多链接都是直接使用一本通的题解,完全不影响。 为什么要转载: 动画、图文结合。 我看了部分文章,一些我觉得很简单的题,但从中学到了以前没有学过的知识点和细节,重点是从中学习别人思维方式。 让更多的同学能学到更多的知识。 官方的QQ群:893157498 这是我建的QQ群:795233394 欢迎各位志同道合的同学们^_^ 已更新的题目颜色是蓝色,点击相

3万+

Fluent动网格+滑移网格+重叠网格对比介绍(以震荡水翼flapping foil为例)

初学fluent笔记,本文主要包含: Flapping foil在fluent内的几种实现方式 在哪设置动网格、滑移、重叠网格 flapping的UDF 示例 写在前面:Fluent在预览网格运动/提交计算之前,注意保存一个cas版本。 -------------------------Flapping foil 网格几种组合实现方式:---------------------- 直接重叠网格,overset, 需要建立两个几何part,part要重合。水翼局部区域(component),背景网格(ba

深海民工CFDer 2万+

BZOJ-4706 B君的多边形 OEIS

题面 题意:有一个正n多边形,我们要连接一些对角线,把这个多边形分成若干个区域,要求连接的对角线不能相交,每个点可以连出也可以不连出对角线,即最终不要求所有区域均为三角形,问总方案数mod (10^9+7)的结果。n≤10^6 题解:手推1,1,3,11,45,利用OEIS知道这是 超级卡特兰数(又称大施罗德数) (n+1) * f(n) = (6*n-3) * f(n-1) - (n-2)...

weixin_34362875的博客 199

springboot源码 红色J_通达信副图指标源码之,出手就赢

今天跟大家分享一个通达信副图指标源码,本指标没有未来函数,因为本指标没有卖点提示,所以本指标需配合主图指标使用效果会更好,简单易懂,很容易明白,所以就不过多介绍使用方法了,以下是指标的贴图。风险提示!股市有风险买卖需谨慎,本指标只做参考建议,不做买卖交易结果,自己要对自己交易结果的盈亏负责,以下是指标的源码。VAR2:=REF(LOW,1);VAR3:=SMA(ABS(LOW-VAR2),3,1)...

weixin_39859909的博客 2847

【机械视觉】C#+VisionPro实战:位深图(CogImage8Grey)与Bitmap互转技巧及工业检测应用

本文详细介绍了在工业检测中如何使用C#和VisionPro实现位深图(CogImage8Grey)与Bitmap的高效互转技巧。通过实战代码示例和工业应用案例,帮助开发者解决图像处理中的常见问题,提升检测精度和系统性能,适用于半导体、汽车零部件等高精度检测场景。

weixin_29250573的博客 186

[2018.07.14 T3] B君的第六题

cdq分治套cdq分治

ShadyPi的IT笔记 403

爆改YOLOv8 | PSA注意力机制融合入YOLOv8

yolov8,PSA注意力,即插即用

weixin_43986124的博客 2497

君正T32/T33开发笔记之固件烧写

本文首先介绍了北京君正T32芯片的性能和主要技术指标。接着介绍了三种固件烧写方法:TF卡烧写、TFTP网络烧写和USB口烧写。详细说明了每种烧写方式的具体操作步骤,包括制作启动卡、固件烧写命令、网络参数设置以及USB驱动安装等关键流程。

isupercar的博客 1476

麒麟操作系统提示“默认密钥环已上锁”的解决办法

麒麟操作系统提示“默认密钥环已上锁”的解决办法

太极淘的博客 1万+

Python 爬虫实战:爬取微博热搜与用户评论数据

本文系统讲解微博热搜榜单与用户评论数据的爬取技术方案。针对微博热搜榜采用Requests+BeautifulSoup解析静态HTML结构,实现高效爬取;对于动态加载的评论数据,使用Selenium模拟浏览器行为规避反爬机制。详细阐述技术选型、反爬策略、数据清洗及存储方法,提供完整代码实现和输出示例。同时强调合规要求,提示开发者需在遵守平台规则的前提下进行数据采集。该方案为舆情分析和热点研究提供了可落地的技术实现路径。

2503_91057718的博客 1716

[2018.07.12 T3] B君的第三题

暂无链接 B君的第三题 【问题描述】 日光之下,并无新事。 大家还记得BZOJ1494[NOI2007]生成树计数吗?这个题目就是原版环形的生成树计数。 考虑到有些同学没有看过这个题目,我们简述这个题目如下。 输入k,n(n≥2k+1)k,n(n≥2k+1)k, n(n ≥ 2k + 1),考虑nnn个点围成一个环,所有距离≤k≤k≤ k的点对之间有一条无向边。 相邻的2...

ShadyPi的IT笔记 2282

Cesium中级开发教程之二十二:视锥体

教程示例网站:https://thomaz529.github.io。

883

《君正T31》1.刷机

刚开始的上机使用和大家不一样,卖家卖的时候没有重新烧一下系统,导致我使用有点异常,直接进入了卖家的程序,且按照卖家的方法也无法退出,无法执行测试程序验证功能。首先我对烧机是不了解的,按照卖家给的文档,看到这个方式,目前我只需要烧写下rootfs,不过之前看到卖家提供了uImage,就给一起烧了。上面只是给定了一些参数,但是参数怎么用,还是得看等uboot真正启动的时候,启动时会去读取flash里的数据,怎么读取也是由用户给定的。看到最后,MTD分区布局,明白了当前设备的地址空间说明,然后调整参数重新烧写。

weixin_44783555的博客 1646

【HYSPLIT 教程第二期】Inline WRF-HYSPLIT 耦合

【HYSPLIT 教程第二期】Inline WRF-HYSPLIT 耦合

WW、forever的博客 808

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

BitNet b1.58 2B4T Technical Report——BitNet b1.58 2B4T 技术报告

BitNet b1.58 2B4T Technical Report——BitNet b1.58 2B4T 技术报告

Together_CZ的博客 2289

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

【转】2018年全国大学生数学建模大赛B题简要分析(附代码)

  今天早上跟学姐室友去复旦把论文答辩做掉了,虽然整个项目基本上是我承担了主要的思路与代码部分,但是今天答辩我跟室友竟然连一句有用的话都没说出来,全场都靠学姐开场流畅地引入,临场随机应变,从而得以与答辩教授欢聚喜散。主要原因是教授竟然准确地问到了我代码里一个细节却相当致命的问题(是一个随机初始化问题,我下面代码部分会详细提到),正好学姐室友都不是特别熟悉我的随机初始化方法,我又不能当场...

weixin_30375427的博客 5573

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

[2018.07.14 T1] B君的第四题

暂无链接 B君的第四题 【问题描述】 已有的事后必再有,已行的事后必再行。 大家还记得Luogo P3959 [NOIP2017]宝藏 吗? B君看到很多人用很多弱智的方法水过这个题,感到非常气愤。 这个题目就是把原题改成了一个计数题。 考虑到有些同学没有看过这个题目,我们简述这个题目如下。 输入一个图,我们定义一个有根生成树的权值是 ∑e={x,y}we×m...

ShadyPi的IT笔记 518

2018美赛b题论文翻译

2018美赛b题论文翻译 google翻译的 有一些地方语言不通顺 一部分还是英文 但是基本能看懂 至少比英文的好看 只翻译了一篇 如果有时间再放一篇 c题的 链接:https://pan.baidu.com/s/1yp18T8KN5jouRvWQlGDbhQ 密码:5o9t ...

magic_MIANJING的博客 2369

青马在线题不会怎么搜答案?4个大学生必备的搜题 #媒体#笔记

在大学的学习过程中,我们常常会遇到一些难以解决的问题,有时候甚至会感到束手无策。然而,如今的技术发展给我们提供了新的解决方案。搜题软件作为一种强大的学习工具,正在被越来越多的大学生所接受和使用。今天,我将为大家介绍几款备受推崇的搜题软件,帮助我们轻松应对各种学习难题。

2401_82948105的博客 1980

君正T10/T20 开发指南

1.君正T10/T20开发资源介绍 1.1 SDK 介绍 ISVP SDK,即软件开发工具包,包括 API 库、开源源码、文档、Samples 等等。开发者可以通过 SDK 快速的开展产品功能开发。以下是 ISVP SDK 的内容概览图: 1.2 SDK 层次结构 ● Hardware: 硬件层,完成 I/O 等具体的硬件功能。 ● linux kernel: 内核层。完成基础的系统功能,定义硬件资源。 ● drivers: ko 模块驱动,可通过 driver 进行硬件操作。 ● API lib:

szx940213的博客 2250
上一篇: AGC022E Median Replace
下一篇: [2018.07.12 T2] B君的第二题
ShadyPi
博客等级 码龄9年 1万+粉丝 637原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ShadyPi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值