平时二十三测

 

 

 

 

 

 

昨日AK, 今日垫底, 我简直是在坐过山车;

以后记住有返回值的函数一定要写返回值,不然全部输出0

题解:

第一题:全是-1, 是2^(n-1)-1,不会证,样例很明显;

对于有X个跟班的人,设它的期望函数f(X)=2^X-1;

利用期望的线性性,E(A)+E(B)=E(C),则E(B)=E(C)-E(A);

E(C)=初始都是-1的局面到之剩一个人;

E(A)=当前到只剩一个人;

求E(B)就直接用打表的规律;整个局面的期望函数值为:所有人期望函数值之和。

 

#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int M = 1e6 + 5;
int cnt[M], bin[M];
const int mod = 1e9 + 7;int main(){freopen("game.in","r",stdin);freopen("game.out","w",stdout);int n, u;scanf("%d", &n);for(int i = 1; i <= n; i++){scanf("%d", &u);if(u != -1) cnt[u]++;}bin[0] = 1;for(int i = 1; i <= n; i++) bin[i] = (bin[i-1]<<1) % mod;int ans = bin[n-1] - 1;for(int i = 1; i <= n; i++)ans = (ans - (bin[cnt[i]]-1) + mod) % mod;printf("%d\n", ans);
}
View Code

 

第二题:dp[i][0/1][0/1] 一维表示考虑到第i个数,二维表示前一个数是否与当前一样,三维表示是否已经合法,

转移就像扫雷一样用中间的转移;

 

#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int M = 1e6 + 10;
const ll mod = 1e9 + 7;
#define RG register
ll dp[M][2][2];int main(){freopen("flower.in","r",stdin);freopen("flower.out","w",stdout);//int cc=clock();int T;scanf("%d", &T);while(T--){int L, S;scanf("%d%d", &L, &S);memset(dp, 0, sizeof(dp));dp[1][0][0] = S;int u = 0;for(RG int i = 1; i < L; i++){dp[i+1][0][0] = (dp[i+1][0][0] + dp[i][0][0]*(S-1)%mod)%mod;dp[i+1][1][0] = (dp[i+1][1][0] + dp[i][0][0])%mod;dp[i+1][0][1] = (dp[i+1][0][1] + dp[i][0][1]*(S-1)%mod)%mod;dp[i+1][1][1] = (dp[i+1][1][1] + dp[i][0][1])%mod;dp[i+1][0][0] = (dp[i+1][0][0] + dp[i][1][0]*(S-1)%mod)%mod;dp[i+1][1][1] = (dp[i+1][1][1] + dp[i][1][0])%mod;dp[i+1][0][1] = (dp[i+1][0][1] + dp[i][1][1]*(S-1)%mod)%mod;}ll ans = (dp[L][0][1] + dp[L][1][1]) % mod;printf("%lld\n",ans);}//int tt=clock();//fprintf(stderr, "%d\n", tt-cc);
}
View Code

 

 

第三题:利用扫描线算法,首先将所有坐标离散化,然后按照正方向枚举x坐标,每次求出当前这个横坐标能看见的某个矩形,将其标记并更新答案。直到这个横坐标所有能看见的矩形均被标号为止。

并且,将每个颜色的权值设为其操作的编号 将每个矩形视作两条线段: 矩形的左侧视为加入当前矩形,右侧+1的位置视为删去当前矩形。用线段树+set维护。对于每个线段树上的节点,存储两个值与一个set,分别设为maxv,minv,S

maxv表示:当前区间内能够看见的,编号最大的未被
标记的颜色。
 minv表示:当前区间内能看见的最小的颜色。(用于更
新maxv)
 S存储完全覆盖了当前区间的所有颜色。
 接下来是更新maxv和minv

理解起来很容易,maxv的更新就不用说了,对minv的更新:里层的min就是左右区间内能看见颜色的最小值,而外层的max是因为:当前区间内都被这个值覆盖,所以取max。

然后,若maxv<minv,说明当前maxv这个颜色一定被其他已更新颜色覆盖掉了,因为它连当前区间内能看见的最小的值都不够。所以将maxv修正为-1,即记为当前区间不含可以被更新的颜色。

每更新一次,继续判断根节点的maxv是否为-1,若不是则继续标记,若是则停止。

O(nlog^2)

 

#include<bits/stdc++.h>
using namespace std;const int M = 6e5 + 5;int tox, toy, dx[M], dy[M], ls[M], rs[M], N;
bool used[M];struct query{int l, r, del, id, x;bool operator < (const query &rhs) const{if(x == rhs.x) return l < rhs.l;return x < rhs.x;}
}blo[M];void pushx(int x){dx[++tox] = x; dx[++tox] = x-1; dx[++tox] = x+1;
}
void pushy(int y){dy[++toy] = y; dy[++toy] = y-1; dy[++toy] = y+1;
}struct Node{int mx, mi;set <int> s;Node *ls, *rs;void up(){if(ls==NULL && rs==NULL){if(s.empty()){mi = mx = -1;return ;}mi = mx = *s.rbegin();if(used[mx]) mx = -1;}else {mi = min(ls->mi, rs->mi);mx = max(ls->mx, rs->mx);if(s.empty()) return ;int ins = *s.rbegin();mi = max(mi, ins);if(mx < ins){if(used[ins]) mx = -1;else {if(mi <= ins) mx = ins;else mx = -1;}}}}
}pool[M << 2], *tail = pool, *root;Node *build(int lf = 1, int rg = N){Node *nd = ++tail;nd->mi = nd->mx = -1;if(lf == rg) ;else {int mid = (lf + rg) >> 1;nd->ls = build(lf, mid);nd->rs = build(mid + 1, rg);}return nd;
}
#define Ls nd->ls, lf, mid
#define Rs nd->rs, mid+1, rg
void add(int L, int R, int opt, int d, Node *nd = root, int lf = 1, int rg = N){if(L <= lf && rg <= R){if(opt == 1) nd->s.insert(d);else nd->s.erase(d);nd->up();return ;}int mid = (lf + rg) >> 1;if(L <= mid) add(L, R, opt, d, Ls);if(R > mid) add(L, R, opt, d, Rs);nd->up();return ;
}void Update(int L, int R, Node *nd = root, int lf = 1, int rg = N){if(L <= lf && rg <= R){nd->up();return ;}int mid = (lf + rg) >> 1;if(L <= mid) Update(L, R, Ls);if(R > mid) Update(L, R, Rs);nd->up();return ;
}int read(){int x = 0; int f = 1; char c = getchar();while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}while(c<='9'&&c>='0'){x=x*10+c-'0';c=getchar();}return x*=f;
}int main(){freopen("excel.in","r",stdin);freopen("excel.out","w",stdout);int n = read(), cnt = 0;for(int i = 1; i <= n; i++){int xl = read(), yl = read(), xr = read(), yr = read();xr--, yr--;blo[++cnt] = (query) {yl, yr, 1, i, xl};blo[++cnt] = (query) {yl, yr, -1, i, xr+1};pushx(xl); pushx(xr+1);pushy(yl); pushy(yr);}sort(dx + 1, dx + 1 + tox);sort(dy + 1, dy + 1 + toy);tox = unique(dx + 1, dx + 1 + tox) - dx - 1;toy = unique(dy + 1, dy + 1 + toy) - dy - 1;for(int i = 1; i <= cnt; i++){blo[i].x = lower_bound(dx + 1, dx + 1 + tox, blo[i].x) - dx;blo[i].l = lower_bound(dy + 1, dy + 1 + toy, blo[i].l) - dy;blo[i].r = lower_bound(dy + 1, dy + 1 + toy, blo[i].r) - dy;ls[blo[i].id] = blo[i].l, rs[blo[i].id] = blo[i].r;}sort(blo + 1, blo + 1 + cnt);int lst = 1;N = toy;root = build();for(int i = 1; i <= tox; i++){while(lst <= cnt && blo[lst].x == i){add(blo[lst].l, blo[lst].r, blo[lst].del, blo[lst].id);lst++;}while(root->mx != -1){int x = root->mx;used[x] = 1;Update(ls[x], rs[x]);}}int ans = 0;for(int i = 1; i <= n; i++) if(used[i]) ans++;printf("%d\n", ans+1);}
View Code

 

转载于:https://www.cnblogs.com/EdSheeran/p/9901814.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/365106.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

20181103_C#线程初探, BeginInvoke_EndInvoke

在C#中学习多线程之前, 必须要深刻的理解委托; 基本上所有的多线程都在靠委托来完成 一. 进程和线程: a) 进程和线程都是计算机的概念, 跟程序语言没有任何关系 b) 进程和线程都属于计算机操作系统自身控制和调度, 程序语言只有使用的份, 最终的控制权还是得操作系统说了算, …

【完成发布】Lazy Line Painter – 非常有趣的 jQuery 路径动画插件

Lazy Line Painter 是基于 Raphal&#xff08;一个用于在网页中绘制矢量图形的 Javascript 库&#xff09;的 jQuery 路径动画插件&#xff0c;能够把线条图案转换为吸引眼球的路径动画模式。 您可能感兴趣的相关文章 60款非常酷的 jQuery 幻灯片演示和下载15个款优秀的 jQuer…

python构建矩阵 x y_生成Python函数一半没问题,当前最正统的代码生成是什么样的?...

机器之心原创参与&#xff1a;思源大家都说深度神经网络能力很强&#xff0c;那么从函数注释生成函数代码&#xff0c;以及从函数代码总结函数注释这种最基础的代码任务到底能不能行&#xff1f;像 Python、Java 这样的通用高级语言&#xff0c;到底在代码生成上能达到什么水平…

福大软工 · 第七次作业 - 需求分析报告(404 Note Found队)

目录 组队后的团队项目的整体计划安排项目logo及思维导图项目logo思维导图产品思维导图产品思维导图-引导产品思维导图-后端数据处理、存储产品思维导图-短信识别产品思维导图-智能分析产品思维导图-壁纸生成产品思维导图-注册界面产品思维导图-登录界面产品思维导图-使用1产品…

Web设计前沿:CSS3 在网页设计中的20个惊艳应用

作为 CSS 的下一个版本&#xff0c;CSS3 给 Web 开发带来了革命性的影响。例如&#xff0c;以前很多需要图片呈现的界面效果&#xff0c;现在使用 CSS3 结合 HTML 就可以实现&#xff0c;CSS3 甚至还可以实现需要 JavaScript 才能实现的复杂动画效果。下面向大家展示 CSS3 圆角…

Websockets与Spring 4

我将整个厨盆放入一个小型Web应用程序中&#xff0c;此应用程序是我在该帖子中开发的一部分-Spring Boot&#xff0c;Spring Integration&#xff0c;RabbitMQ&#xff0c;最后是该帖子的主题&#xff0c;Spring MVC与Spring 4中的Websocket支持。 实时地震清单应用 最终的应用…

计算机算力英语怎么说,MIT警告深度学习正逼近算力极限,突破瓶颈会让人类成为上帝?...

原标题&#xff1a;MIT警告深度学习正逼近算力极限&#xff0c;突破瓶颈会让人类成为上帝&#xff1f;摩尔定律提出的时候&#xff0c;人们从来没有想到过芯片的算力会有到达极限的一天&#xff0c;至少从来没有想到芯片算力极限会这么快到来。MIT发出警告&#xff1a;算力将探…

推荐40个简单的 jQuery 导航插件和教程【下篇】

在这篇文章中&#xff0c;我为大家收集了40款非常棒的 jQuery 导航插件和教程。导航作为网站重要的组成部分&#xff0c;能够帮助用户找到他们想要的内容&#xff0c;因此导航设计的好坏决定了用户能够在你的网站停留更长的时间&#xff0c;浏览更多的内容。在下面的集合中&…

福大软工 · 第七次作业 - 需求分析报告

【 组长博客链接】 031602428 苏路明 【计划安排】 阶段主要任务时间任务内容1项目选题09.22 - 10.10确定选题内容&#xff0c;收集用户需求&#xff0c;明确定位&#xff0c;竞品分析&#xff0c;选题报告2需求分析10.11 - 11.4梳理需求&#xff0c;输出思维导图&#xff0c;原…

网站页面左右_广州网站优化的技巧是什么?

说到网站优化&#xff0c;大家都不陌生&#xff0c;但首先&#xff0c;我们知道为什么要优化网站吗?我们网站优化是为了改善网站在百度&#xff0c;搜狗等搜索引擎搜索结果排名中的网站页面&#xff0c;以增强搜索引擎的流量。下面拓王朝广州网站优化公司小编针对网站的优化技…

python: 爬取[博海拾贝]图片脚本

练手代码&#xff0c;聊作备忘&#xff1a; # encoding: utf-8 # from __future__ import unicode_literalsimport urllib import urllib2 import re import os import time from threading import Threadclass BhsbSpider(object):_url rhttps://bh.sb/post/category/main/;_…

Java八岁生日快乐!

这是另外一段漫长的旅程&#xff0c;但是昨天&#xff0c;恰好是Java 7发布两年零七个月零十八天之后&#xff0c;我们现在有了可用于生产的构建 Java 8可供下载 &#xff01; 这个新的主要版本包含一些新功能和增强功能&#xff0c;这些功能和增强功能可以提高现有应用程序的…

精心挑选的23款美轮美奂的 jQuery 图片特效插件

jQuery是一个非常优秀的 JavaScript 框架&#xff0c;使用简单灵活&#xff0c;同时还有许多成熟的插件可供选择。其中&#xff0c;jQuery 最令人印象深刻的应用之一就是对图片的处理&#xff0c;它可以让帮助你在你的项目中加入各种精美的图片展示效果。下面向大家分享精心挑选…

arduino定时器函数如何使用_excel如何使用函数公式来查找图片

先看效果&#xff1a;是不是有点意思啊。好&#xff0c;咱们看看如何实现这样的效果。步骤一&#xff1a;准备好图片资料&#xff0c;话说巧媳妇难做无米之炊&#xff0c;没有资料&#xff0c;如何查询&#xff1f;如下图所示&#xff1a;A列是产品名称&#xff0c;B列是对应的…

精美的手机界面设计素材和线框图设计工具推荐

在制作界面原型的时候&#xff0c;如果有现成的界面基础元素可以使用的话&#xff0c;设计师就可以非常快速的完成原型的制作&#xff0c;能够节省大量的时间和精力。在这篇文章&#xff0c;我向大家分享45套非常有用的 UI 和 Wireframe 套件素材包&#xff0c;帮助设计们用于 …

c语言求数列的和_例15:C语言求Fibonacci数列的前30个数

例15&#xff1a;求Fibonacci数列的前30个数。这个数列有以下特点&#xff1a;第1,2两个数为1,1,。从第三个数开始&#xff0c;该数是其前两个数之和。&#xff08;斐波那契不死神兔&#xff09;解题思路&#xff1a;从前两个月的兔子数可以推出第3个月的兔子数。设第1个月的兔…

哈工大未来计算机院士,中国双一流大学拥有院士校友数排名,这是真实力!哈工大依然很强...

原标题&#xff1a;中国双一流大学拥有院士校友数排名&#xff0c;这是真实力&#xff01;哈工大依然很强校友是一个神奇的资源&#xff0c;就是曾经在同一个学校、大学、研究院(所)进行学习、工作和进修的人&#xff0c;就称为校友&#xff0c;以学校为标准&#xff0c;并不以…

GT sport赛道详解 - Dragon Trail | 龙之径

参考&#xff1a;GT sport所有赛道简介 今天的心情变化挺大&#xff0c;从绝望放弃到豁然开朗。 前言&#xff1a;GT sport有个排位赛&#xff0c;是每位sim赛车手提升自己等级的唯一途径&#xff0c;其中一个排位赛就是龙之径II&#xff08;逆时针跑&#xff09;&#xff0c;我…

优秀网页设计:带给你灵感的联系页面设计

在设计网站的时候&#xff0c;我们需要考虑到各个方面&#xff0c;从页眉到脚&#xff0c;从着陆页&#xff08;landing page&#xff09;到关于页&#xff08;about us page&#xff09;&#xff0c;还有联系页面&#xff08;contact page&#xff09;都要考虑。联系页面是网站…

前端项目难点及解决方法_预埋件施工重点难点的解决方法

点击箭头处“蓝色字”&#xff0c;关注我们哦&#xff01;&#xff01;关于施工重难点的问题&#xff0c;可根据主体结构施工情况&#xff0c;想从根本上解决几大重难点&#xff0c;必须严格按照设计图纸及规范要求放线定位&#xff0c;将预埋件施工精度控制合格率&#xff0c;…