众所周知,sbwzx在考试一结束就嚷嚷T1是个sb题。那他为什么调了2小时才调出来呢?快和小编一起看看吧。

Sb题:指除了sbwzx别人都能做出来的题

1.CE:震惊!sbwzx竟然连map都不会用,我们sbwzx实在是太sb了!

2.震惊!这题根本不需要用map,sbwzx仍然在用,还用错了!第二天才想到可以结构体排序

3.震惊!短短十几行代码就有两个明显错误!

void Solve(){
scanf("%d%d%d",&n,&m,&k);
for(int i=1;i<=k;++i) scanf("%d%d",&a[i].x,&a[i].y);
sort(a+1,a+k+1,cmp);
ll tool=1ll*n*(n+1)%mod;//没除2
ll res=1;
for(int i=1;i<=k;++i){
if(a[i].x==a[i-1].x&&a[i].x==a[i-1].x) continue;//这第二个条件比较了个寂寞
if(a[i].x!=a[i-1].x){
ans=ans*res%mod;
res=(tool-a[i].y+mod)%mod;
cnt++;
}else res=(res-a[i].y+mod)%mod;
}
ans=ans*qpow(tool,m-cnt)%mod;
printf("%lld\n",ans);
}

另外,如果这么写,最后一个特殊点是没法乘到的。

为了乘到,要人为加一个限制。

void Solve(){
scanf("%d%d%d",&n,&m,&k);
for(int i=1;i<=k;++i) scanf("%d%d",&a[i].x,&a[i].y);
sort(a+1,a+k+1,cmp);
ll tool=1ll*n*(n+1)/2%mod;
ll res=1;
a[k+1].x=a[k+1].y=0;
for(int i=1;i<=k+1;++i){
if(a[i].x==a[i-1].x&&a[i].y==a[i-1].y) continue;
if(a[i].x!=a[i-1].x){
ans=ans*res%mod;
res=tool;
cnt++;
}
res=(res-a[i].y+mod)%mod;
}
cnt--;
ans=ans*qpow(tool,m-cnt)%mod;
printf("%lld\n",ans);
}

然后就拿到了80分的好成绩。

这是为什么呢?

原来,当\(k==0\)时,cnt是不需要减减的,特判一下,就过了!

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=100000+10,mod=1e9+7;
struct node{
int x,y;
}a[maxn];
int n,m,k,cnt;
ll ans=1;
bool cmp(node A,node B){
return A.x!=B.x ? A.x<B.x : A.y<B.y ;
}
ll qpow(ll x,int b){
ll res=1;
ll base=x;
while(b){
if(b&1) res=res*base%mod;
base=base*base%mod;
b>>=1;
}
return res;
}
void Solve(){
scanf("%d%d%d",&n,&m,&k);
for(int i=1;i<=k;++i) scanf("%d%d",&a[i].x,&a[i].y);
sort(a+1,a+k+1,cmp);
ll tool=1ll*n*(n+1)/2%mod;
ll res=1;
a[k+1].x=a[k+1].y=0;
for(int i=1;i<=k+1;++i){
if(a[i].x==a[i-1].x&&a[i].y==a[i-1].y) continue;
if(a[i].x!=a[i-1].x){
ans=ans*res%mod;
res=tool;
cnt++;
}
res=(res-a[i].y+mod)%mod;
}
if(k!=0) cnt--;
ans=ans*qpow(tool,m-cnt)%mod;
printf("%lld\n",ans);
}
int main(){
freopen("easy.in","r",stdin);
freopen("easy.out","w",stdout);
Solve();
return 0;
}

[调试笔记] 晚测5 T1 容易题的更多相关文章

  1. ida动态调试笔记

    ida动态调试笔记 目标文件:阿里安全挑战赛的第二题 点击打开链接 使用环境:ida6.8点击打开链接,adt bundle点击打开链接 首先打开avd安卓模拟器,界面如下: 在dos下运行adb命令 ...

  2. 【NOIP2015模拟11.4】JZOJ8月6日提高组T1 刷题计划

    [NOIP2015模拟11.4]JZOJ8月6日提高组T1 刷题计划 题目 题解 题意 有\(n\)道题,编号为1~\(n\) 给出\(m\)次操作 每次操作有3种类型 1 \(x\) 表示交了\(A ...

  3. 上午小测3 T1 括号序列 && luogu P5658 [CSP/S 2019 D1T2] 括号树 题解

    前 言: 一直很想写这道括号树..毕竟是在去年折磨了我4个小时的题.... 上午小测3 T1 括号序列 前言: 原来这题是个dp啊...这几天出了好几道dp,我都没看出来,我竟然折磨菜. 考试的时候先 ...

  4. Tomcat调试笔记

    调试笔记 在使用Tomcat过程中经常碰到问题,导致tomcat启动失败.如下↓ 由于报错太过笼统,我根本无法找出错误.后来我切换到Console视图下,看到了如下错误信息. 根据报错信息,错误原因是 ...

  5. JavaScript特效(调试笔记)

    JavaScript特效 一.在网页上显示当前的时间日期,例如:“2016年3月26日 星期六”. js源代码: function getTime() { var today = new Date() ...

  6. USB wifi调试笔记

    本文以realtek 8192CU WiFi模块为例,介绍USB wifi在Jelly Bean 4.1的调试笔记. 1.WIFI打不开现象概述 WiFi打不开是指您在UI的settings下选中Wi ...

  7. VS 2013驱动开发 + Windbg + VM双机调试(亲测+详解)

    ------------VS 2013驱动开发 + Windbg + VM双机调试(亲测+详解)------------- WIN10已上线,随之而来的是VS2015:微软在 "WDK760 ...

  8. modbus-poll和modbus-slave工具的学习使用——modbus协议功能码3的解析(及欧姆龙温控器调试笔记)

    最近的项目中使用到了欧姆龙的温控器,里面有很多的通信方式,我们使用的常见的modbus——RTU方式,其他方式我们不使用,其中通信手册上面有很多通信的实例,欧姆龙modbus还区分4字节模式和2字节模 ...

  9. GDB调试笔记

    参考资料:GDB调试精粹及使用实例 # 调试实例 #include <iostream> #include <cstring> using namespace std; ][] ...

随机推荐

  1. Jsoup快速查询

    一.selector选择器 二.Xpath查询

  2. java.net.NoRouteToHostException: 无法指定被请求的地址

    今天压力测试时, 刚开始出现了很多异常, 都是 java.net.NoRouteToHostException: Cannot assign requested address.  经网上查资料, 是 ...

  3. 修改 CubeMX 生成的 RT-Thread makefile 工程

    修改 CubeMX 生成的 RT-Thread makefile 工程 使用 RT-Thread 官方 基于 CubeMX 移植 RT-Thread Nano 生成的 Makefile 工程在编译时有 ...

  4. ecshop调用指定栏目下的商品的方法

    第一步 在系统目录文件找到includes/lib_goods.php  这个文件打开 在此页最底部加入以下函数代码 /** * 首页获取指定分类产品 * * @access public * @pa ...

  5. Linux系列(26) - 强制杀死进程

    查进程 ps  -ef ps -aux #上述两个均可 例子:ps -ef | grep "vim canshu2" 强杀进程 kill -s 9 进程id #命令格式 例子:ki ...

  6. 一文让你彻底理解SQL连接查询

    表结构 内连接 笛卡尔积问题 普通内连接:inner join on 隐式内连接: 外连接 内连接与外连接查询的区别 内连接查询是查询两张表交集的数据,主外键关联的数据. 左连接查询是查询左表中的所有 ...

  7. P4321-随机漫游【状压dp,数学期望,高斯消元】

    正题 题目链接:https://www.luogu.com.cn/problem/P4321 题目大意 给出\(n\)个点\(m\)条边的一张无向图,\(q\)次询问. 每次询问给出一个点集和一个起点 ...

  8. MacOS下terminal防止ssh自动断开的方法和自动断开的原因

    之前换了个工作环境,用terminal连接远程服务器的时候老是出现自动断开的情况,搞得我很是郁闷.因为之前在家的时候,并没有出现过类似情况.后来在网上找了很久,发现国外网站上有个大神说应该是有些路由器 ...

  9. Redis三种集群模式介绍

    三种集群模式 redis有三种集群模式,其中主从是最常见的模式. Sentinel 哨兵模式是为了弥补主从复制集群中主机宕机后,主备切换的复杂性而演变出来的.哨兵顾名思义,就是用来监控的,主要作用就是 ...

  10. 利用Java Agent进行代码植入

    利用Java Agent进行代码植入 Java Agent 又叫做 Java 探针,是在 JDK1.5 引入的一种可以动态修改 Java 字节码的技术.可以把javaagent理解成一种代码注入的方式 ...