T1 辣鸡(ljh)

就是一道分类讨论的暴搜,外加一丢丢的减枝,然而我挂了,为啥呢,分类讨论变量名打错,大于小于号打反,能对才怪,写了sort为了调试就注释了,后来忘了解开,小减枝也没打。但是这道题做了2个小时不止,T2T3完全挤得没时间。做这道题只感觉心累。。。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#define ll long long
using namespace std;
struct node
{
ll a,b,c,d,w;
}q[];
ll n,ans,mr;
bool cmp(node x,node y) {return x.a==y.a?x.b<y.b:x.a<y.a;}
ll read()
{
ll aa=,bb=;char cc=getchar();
while(cc>''||cc<''){if(cc='-') bb=-;cc=getchar();}
while(cc<=''&&cc>=''){aa=aa*+cc-'';cc=getchar();}
return aa*bb;
}
int main()
{
n=read();
for(ll i=;i<=n;i++){
q[i].a=read(),q[i].b=read(),q[i].c=read(),q[i].d=read();
q[i].w=(q[i].c-q[i].a)*(q[i].d-q[i].b)*;
}
sort(q+,q+n+,cmp);
for(ll i=;i<=n;i++){
ll a=q[i].a,b=q[i].b,c=q[i].c,d=q[i].d;
ans+=q[i].w;mr=c;
for(ll j=i+;j<=n;j++){
ll x1=q[j].a,y1=q[j].b,x2=q[j].c,y2=q[j].d;
if(x1>mr+) break;
mr=max(mr,x2);
if(d==y1-){
if(a<=x1&&x1<=c&&c<=x2){
ll chong=c-x1;
ans+=chong*;
if(c<x2) ans++;
if(a<x1) ans++;
}
else if(x1<=a&&a<=x2&&x2<=c){
ll chong=x2-a;
ans+=chong*;
if(c>x2) ans++;
if(x1<a) ans++;
}
else if(x1<=a&&a<=c&&c<=x2){
ll chong=c-a;
ans+=chong*;
if(x1<a) ans++;
if(c<x2) ans++;
}
else if(a<=x1&&x1<=x2&&x2<=c){
ll chong=x2-x1;
ans+=chong*;
if(a<x1) ans++;
if(x2<c) ans++;
}
else if(x2==a-) ans++;
else if(c==x1-) ans++; }
else if(y2==b-){
if(x1<=a&&a<=x2&&x2<=c){
ll chong=x2-a;
ans+=chong*;
if(x1<a) ans++;
if(x2<c) ans++;
}
else if(a<=x1&&x1<=c&&c<=x2){
ll chong=c-x1;
ans+=chong*;
if(c<x2) ans++;
if(a<x1) ans++;
}
else if(a<=x1&&x1<=x2&&x2<=c){
ll chong=x2-x1;
ans+=chong*;
if(x2<c) ans++;
if(a<x1) ans++;
}
else if(x1<=a&&a<=c&&c<=x2){
ll chong=c-a;
ans+=chong*;
if(c<x2) ans++;
if(x1<a) ans++;
}
else if(x2==a-) ans++;
else if(c==x1-) ans++;
}
else if(c==x1-){
if(y1<=b&&b<=y2&&y2<=d){
ll chong=y2-b;
ans+=chong*;
if(d>y2) ans++;
if(b>y1) ans++;
}
else if(b<=y1&&y1<=d&&d<=y2){
ll chong=d-y1;
ans+=chong*;
if(d<y2) ans++;
if(b<y1) ans++;
}
else if(y1<=b&&b<=d&&d<=y2){
ll chong=d-b;
ans+=chong*;
if(d<y2) ans++;
if(b>y1) ans++;
}
else if(b<=y1&y1<=y2&&y2<=d){
ll chong=y2-y1;
ans+=chong*;
if(y2<d) ans++;
if(b<y1) ans++;
}
}
else if(x2==a-){
if(b<=y1&&y1<=d&&d<=y2){
ll chong=d-y1;
ans+=chong*;
if(y2>d) ans++;
if(y1>b) ans++;
}
else if(y1<=b&&b<=y2&&y2<=d){
ll chong=y2-b;
ans+=chong*;
if(d>y2) ans++;
if(b>y1) ans++;
}
else if(y1<=b&&b<=d&&d<=y2){
ll chong=d-b;
ans+=chong*;
if(d<y2) ans++;
if(y1<b) ans++;
}
else if(b<=y1&y1<=y2&&y2<=d){
ll chong=y2-y1;
ans+=chong*;
if(d>y2) ans++;
if(b<y1) ans++;
}
}
}
}
printf("%lld\n",ans);
}

辣鸡(ljh)

T2 模板(ac)

前30分暴力往上翻(dfs往下找也可以,时间稍长),中间40分雨天的尾巴线段树动态开点+线段树合并(考试压根没看见这40分的情况,数据范围一定要看的不),最后30分暂时还没看懂,先留着。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<map>
#define ll long long
#define MAX 100100
using namespace std;
struct node
{
ll to,nxt;
}t[MAX*];
struct tree
{
ll l,r,sum;
}h[MAX*];
ll n,m,q,tot,cnt,nxt[MAX*],w[MAX],a[][],ans[MAX],fa[MAX];
ll root[MAX],num;
map<ll,ll>mp;
bool vis[MAX],vv[][],flag;
ll read()
{
ll aa=,bb=;char cc=getchar();
while(cc>''||cc<''){if(cc=='-') bb=-;cc=getchar();}
while(cc<=''&&cc>=''){aa=aa*+cc-'';cc=getchar();}
return aa*bb;
}
void add(ll x,ll y)
{
t[++tot].to=y;
t[tot].nxt=nxt[x];
nxt[x]=tot;
}
void dfs(ll x)
{
for(ll i=nxt[x];i;i=t[i].nxt){
ll y=t[i].to;
if(vis[y]) continue;
vis[y]=;
fa[y]=x;
dfs(y);
}
}
void find(ll x,ll c)
{
while(x!=){
if(w[x]){
w[x]--;
if(!vv[x][c]){
vv[x][c]=;
ans[x]++;
}
}
x=fa[x];
}
}
void update(ll x)
{
h[x].sum=h[h[x].l].sum+h[h[x].r].sum;
}
void insert(ll &rt,ll l,ll r,ll pos)
{
if(!rt) rt=++num;
if(l==r){
h[rt].sum=;
return;
}
ll mid=(l+r)>>;
if(pos<=mid) insert(h[rt].l,l,mid,pos);
else insert(h[rt].r,mid+,r,pos);
update(rt);
}
ll merge(ll x,ll y,ll l,ll r)
{
if(!x||!y) return x+y;
if(l==r) return x;
ll mid=(l+r)>>;
h[x].l=merge(h[x].l,h[y].l,l,mid);
h[x].r=merge(h[x].r,h[y].r,mid+,r);
update(x);
return x;
}
void Dfs(ll x)
{
for(ll i=nxt[x];i;i=t[i].nxt){
ll y=t[i].to;
if(vis[y]) continue;
vis[y]=;
Dfs(y);
root[x]=merge(root[x],root[y],,m);
}
ans[x]=h[root[x]].sum;
}
int main()
{
n=read();
ll u,v;
for(ll i=;i<n;i++){
u=read();v=read();
add(u,v);
add(v,u);
}
for(ll i=;i<=n;i++){
w[i]=read();
if(w[i]!=) flag=;
}
if(n<=){
vis[]=;
dfs();
m=read();
for(ll i=,x,c;i<=m;i++){
x=read();c=read();
if(!mp[c]) mp[c]=++cnt;
find(x,mp[c]);
}
q=read();
for(ll i=,x;i<=q;i++){
x=read();
printf("%lld\n",ans[x]);
}
return ;
}
if(!flag){
m=read();
for(ll i=,x,c;i<=m;i++){
x=read();c=read();
if(!mp[c]) mp[c]=++cnt;
insert(root[x],,m,mp[c]);
}
vis[]=;
Dfs();
q=read();
for(ll i=,x;i<=q;i++){
x=read();
printf("%lld\n",ans[x]);
}
return ;
}
}

模板(ac) 70分骗分

T3 大佬(kat)

概率与期望,看了眼题就跑了,但据大佬们说“这是道水题”,“这是最简单的题”,“我30分钟看题+ac”(都是神仙)。(我确实是不会)考试看题都看错了。。。

这是一道假期望。。。

f[i][j]表示前i道题,最大难度为j的方案数,两种情况转移:1.第j道题的难度是j。所以前面的题难度只要不大于j就可以(看题看题看题),f[i][j]=Σf[i-1][l] (l<j);2.第i题的难度小于j,那么前i-1题里就必须要有j难度的,且第i题有j种选择方案即(1~j-1),f[i][j]=f[i-1][j]*j,转移就行。这n道题,可以做(n-k+1)天,这(n-k+1)天是相对独立的,所以求出的方案数×天数就是合法方案数,总的方案数就是mk,乘上代价就是期望。

#include<iostream>
#include<cstdio>
#define ll long long
#define mod 1000000007
using namespace std;
ll n,m,k,w[],f[][],up,down;
ll quick(ll x,ll p)
{
ll ans=;
while(p){
if(p&) ans=ans*x%mod;
x=x*x%mod;
p>>=;
}
return ans%mod;
}
int main()
{
scanf("%lld%lld%lld",&n,&m,&k);
for(ll i=;i<=m;i++) scanf("%lld",&w[i]);
if(k>n){
puts("");
return ;
}
for(ll i=;i<=m;i++) f[][i]=;
for(ll i=;i<=k;i++){
for(ll j=;j<=m;j++){
(f[i][j]+=f[i-][j]*j)%=mod;
for(ll l=;l<j;l++)
(f[i][j]+=f[i-][l])%=mod;
}
}
for(ll i=;i<=m;i++) (up+=f[k][i]*w[i]%mod)%=mod;
down=quick(m,k);down=quick(down,mod-);
printf("%lld\n",up*down%mod*(n-k+)%mod);
}

大佬(kat)

7.29 NOIP模拟测试10 辣鸡(ljh)+模板(ac)+大佬(kat)的更多相关文章

  1. [NOIP模拟测试10]辣鸡(ljh) 题解

    首先计算块内贡献,很显然是$(x_2-x_1)*(y_2-y_1)*2$. 然后考虑矩形之间的贡献,sort一遍分类讨论$n^2$暴力即可. 注意考虑边界情况是否能多两个,以及角对角的情况. 另外,排 ...

  2. 2019.7.29 NOIP模拟测试10 反思总结【T2补全】

    这次意外考得不错…但是并没有太多厉害的地方,因为我只是打满了暴力[还没去推T3] 第一题折腾了一个小时,看了看时间先去写第二题了.第二题尝试了半天还是只写了三十分的暴力,然后看到第三题是期望,本能排斥 ...

  3. NOIP模拟测试10「大佬·辣鸡·模板」

    大佬 显然假期望 我奇思妙想出了一个式子$f[i]=f[i-1]+\sum\limits_{j=1}^{j<=m} C_{k \times j}^{k}\times w[j]$ 然后一想不对得容 ...

  4. noip模拟测试10

    T1 这道题在考场上想到了二维前缀和,就是自己算前缀和的方式有点麻烦,导致花的时间较长,但还是成功搞了出来. 因为暴力计算的话需要不停枚举左上角和右下角的 i ,j, 时间复杂度为 n^4 ,我当时就 ...

  5. [CSP-S模拟测试]:辣鸡(ljh) (暴力)

    题目描述 辣鸡$ljh\ NOI$之后就退役了,然后就滚去学文化课了.然而在上化学课的时候,数学和化学都不好的$ljh$却被一道简单题难住了,受到了大佬的嘲笑.题目描述是这样的:在一个二维平面上有一层 ...

  6. [考试反思]0729NOIP模拟测试10

    安度因:哇哦. 安度因:谢谢你. 第三个rank1不知为什么就来了.迷之二连?也不知道哪里来的rp 连续两次考试数学都占了比较大的比重,所以我非常幸运的得以发挥我的优势(也许是优势吧,反正数学里基本没 ...

  7. 2019.8.3 [HZOI]NOIP模拟测试12 C. 分组

    2019.8.3 [HZOI]NOIP模拟测试12 C. 分组 全场比赛题解:https://pan.baidu.com/s/1eSAMuXk 刚看这题觉得很难,于是数据点分治 k只有1和2两种,分别 ...

  8. 2019.8.3 [HZOI]NOIP模拟测试12 B. 数颜色

    2019.8.3 [HZOI]NOIP模拟测试12 B. 数颜色 全场比赛题解:https://pan.baidu.com/s/1eSAMuXk 数据结构学傻的做法: 对每种颜色开动态开点线段树直接维 ...

  9. 2019.8.3 [HZOI]NOIP模拟测试12 A. 斐波那契(fibonacci)

    2019.8.3 [HZOI]NOIP模拟测试12 A. 斐波那契(fibonacci) 全场比赛题解:https://pan.baidu.com/s/1eSAMuXk 找规律 找两个节点的lca,需 ...

随机推荐

  1. Element-ui 2.8.0版本中提升表格性能,做了哪些事情,原理是什么

    背景 项目中一直用element-ui,之前用el-table的时候,发现表格数据较多时,滑动表格就会很卡.我们的表格中只有200行数据,每行大概有30的字段,表格滑动就卡的不行.在Element-u ...

  2. PCL学习之:将超声数据按照PCL点云方式发布出去

    前言:基于2D激光雷达的机器人,想让它跑自动导航,众所周知有2个比较明显的缺陷,1,那就是普通的激光雷达无法对玻璃或是镜面物体有反映; 2,机器人避障时只能对某一个平面的物体有反映,超过或者低于这个平 ...

  3. 如何保障MySQL主从复制关系的稳定性?关键词(新特性、crash-safe)

    一 前言 MySQL 主从架构已经被广泛应用,保障主从复制关系的稳定性是大家一直关注的焦点.MySQL 5.6 针对主从复制稳定性提供了新特性: slave 支持 crash-safe.该功能可以解决 ...

  4. Knative 基本功能深入剖析:Knative Serving 自动扩缩容 Autoscaler

    Knative Serving 默认情况下,提供了开箱即用的快速.基于请求的自动扩缩容功能 - Knative Pod Autoscaler(KPA).下面带你体验如何在 Knative 中玩转 Au ...

  5. Budgie Desktop in Linux 无法使用触摸板右键功能

    问题描述 Budgie桌面在Linux环境下很好用,不过最近发现触摸板的右键功能是不可用的 解决方法 经查阅Gnome官方文档(Budgie有很多功能基于Gnome)发现是Gnome官方把这个功能去掉 ...

  6. WEB网站发布服务器IIS报错问题终极解决方案,查到问题点

    4本次错误webservice发布新服务器后,出现此错误. 解决方法: 找到dmp文件 dmp文件是啥?自己百度.简单的说就是黑匣子,记录程序崩溃前的操作,那么如何找到这个黑匣子呢? 1.启动 Win ...

  7. Linux磁盘系统——磁盘系统简介

    Linux磁盘系统——磁盘系统简介 摘要:本文主要学习了Linux系统中有关磁盘的一些知识. 文件系统 说明 硬盘是用来存储数据的,可以将其想象成柜子,只不过柜子是用来存储衣物的.新买来的硬盘,通常要 ...

  8. 【设计模式】Adapter

    前言 Adapter设计模式,允许客户端使用接口不兼容的类. 昨天收拾一些以前的东西,发现了藏在柜子里的一条线,这条线叫做OTG.这条线的一端是micro-usb的输出口,另一端是usb的输入口.这条 ...

  9. 轻量级流程图控件GoJS示例连载(一):最小化

    GoJS是一款功能强大,快速且轻量级的流程图控件,可帮助你在JavaScript 和 HTML5 Canvas程序中创建流程图,且极大地简化你的JavaScript / Canvas 程序. 慧都网小 ...

  10. Jmeter参数化、检查点、集合点教程

    在使用Jemeter做压力测试的时候,往往需要参数化用户名,密码以到达到多用户使用不同的用户名密码登录的目的,这个时候我们就可以使用参数化登录. 一.badboy录制需要的脚本.也可以用fiddler ...