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. Java-100天知识进阶-JVM内存-知识铺(三)

    知识铺: 致力于打造轻知识点,持续更新每次的知识点较少,阅读不累.不占太多时间,不停的来唤醒你记忆深处的知识点. Java内存模型(JMM) JVM内存模式是JVM的内存分区 Java内存模式是一种虚 ...

  2. Redis2.8之后主从复制的流程

    梳理一下Redis2.8之后主从复制的流程:

  3. cmd控制台中文乱码解决办法

    1.打开cmd控制台,在命令行输入chcp后回车可以查看到当前的字符编码.如果是乱码的话,这时通常是936,代表的是GBK编码. 2.在命令行输入chcp 65001后回车.65001代表的是UTF- ...

  4. 【MySQL】完整性约束条件与设计范式

    完整性约束条件 概念: 对表中的数据进行限定,保证数据的正确性.有效性和完整性. 分类: 主键约束:primary key 非空约束:not null 唯一约束:unique 外键约束:foreign ...

  5. SAP-简单的OALV演示练习

    接上一篇传统ALV:https://www.cnblogs.com/BruceKing/p/11320165.html. 首先介绍下什么是ALV,在R/3 4.6C之前ALV全称为ABAP List ...

  6. 记录自己运行eShopOnContainers过程中遇到的坑

    由于各种各样的问题,依照官方文档运行eShopOnContainers项目遇到了好多莫名其妙的错误. 好在最后都解决了,在此记录,以防自己以后再遇到,也为遇到同样问题的同学提供参考. 参考的官方文档 ...

  7. WPF 有任何Focus问题,就找 Keyboard_Navigation

    牛牛的博客 https://www.cnblogs.com/smallidea/p/3412699.html 参照官网教程: https://docs.microsoft.com/en-us/dotn ...

  8. netcore sdk版本选择

    NetCore sdk并不是每个版本都支持VS2017工具,也不是每个版本的sdk版本号和Runtime版本号都一样,这就需要我们在创建某个版本的net core应用时注意: 使用不同版本的vs时需要 ...

  9. 350道面试题分享,拿下京东offer工资double

    350道面试题分享,拿下京东offer工资double 前言: 面试,其实是一个双向选择的过程,在这个过程里,我们不应该抱着畏惧的心态去对待,这样反而会影响自己的发挥.同时看中的应该不止薪资,还要看你 ...

  10. java SSM 框架 微信自定义菜单 快递接口 SpringMVC mybatis redis shiro ehcache websocket

    A 调用摄像头拍照,自定义裁剪编辑头像,头像图片色度调节B 集成代码生成器 [正反双向](单表.主表.明细表.树形表,快速开发利器)+快速表单构建器 freemaker模版技术 ,0个代码不用写,生成 ...