【洛谷】NOIP2018原创模拟赛DAY1解题报告
T1:小凯的数字
题意:给定q个l,r,求l(l+1)(l+2)...(r-1)r模9的结果
很显然,这是道考验数(运)学(气)的题目
结论:输出\((l+r)*(r-l+1)\over2\)(具体证明见比赛官方博客)
需要注意的是不能直接乘,不然会爆long long
而且,这道题卡快读。。。
Code:
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll q,l,r;
int main(){
scanf("%lld",&q);
for(ll i=1;i<=q;i++){
scanf("%lld%lld",&l,&r);
ll fir,scd;fir=l+r;scd=(r-l+1);
if(fir%2==0)fir/=2;
else scd/=2;
fir%=9;scd%=9;
printf("%lld\n",(fir*scd)%9);
}
return 0;
}
T2:密室
题意:哈利和罗宾在一张无向图中,他们要到两个房间去,而其中有一些房间是只有哈利才能去的,最少需要多少时间,一共有n个点,m条边,k个只有哈里才能去的房间
不难的图论题,显然只存在几种情况,
要么哈利到A,罗宾到B 要么哈利到B,罗宾到A
还有一种就是哈利一个人走过两个房间(因为罗宾能走的路哈利都能走,而哈利走的路罗宾不一定都能走,所以一个人走,哈利绝不会比罗宾慢)
所以,只要找这几条最短路就可以了
1.哈利到房间A,房间B的最短路n
2.罗宾到房间A,房间B的最短路
3.哈利从房间A到房间B的最短路
Code:
#include<bits/stdc++.h>
#include<queue>
#define N 200001
using namespace std;
int n,m,k,ed1,ed2,cnt,head[N],v[N],dis[N],snake[N];
struct Edge{
int nxt,to,val;
}tree[N];
void read(int &x){
char ch; bool ok;
for(ok=0,ch=getchar(); !isdigit(ch); ch=getchar()) if(ch=='-') ok=1;
for(x=0; isdigit(ch); x=x*10+ch-'0',ch=getchar()); if(ok) x=-x;
}
void add(int a,int b,int c){
++cnt;
tree[cnt].nxt=head[a];
tree[cnt].to=b;
tree[cnt].val=c;
head[a]=cnt;
}
void spfa1(int v0){
for(int i=1;i<=n;i++)dis[i]=1000000001,v[i]=0;
queue<int>q;
q.push(v0);v[v0]=1;dis[v0]=0;
while(q.size()){
int x=q.front();q.pop();v[x]=0;
for(int i=head[x];i;i=tree[i].nxt){
int j=tree[i].to;
if(dis[j]>dis[x]+tree[i].val){
dis[j]=dis[x]+tree[i].val;
if(!v[j])q.push(j),v[j]=1;
}
}
}
}
void spfa2(int v0){
for(int i=1;i<=n;i++)dis[i]=1000000001,v[i]=0;
queue<int>q;
q.push(v0);v[v0]=1;dis[v0]=0;
while(q.size()){
int x=q.front();q.pop();v[x]=0;
for(int i=head[x];i;i=tree[i].nxt){
int j=tree[i].to;
if(!snake[j]&&dis[j]>dis[x]+tree[i].val){
dis[j]=dis[x]+tree[i].val;
if(!v[j])q.push(j),v[j]=1;
}
}
}
}
int main(){
read(n),read(m),read(k);
for(int i=1;i<=k;i++){
int s;read(s);snake[s]=1;
}
for(int i=1;i<=m;i++){
int a,b,c;
read(a),read(b),read(c);
add(a,b,c);add(b,a,c);
}
read(ed1),read(ed2);
spfa1(1);
int hd1=dis[ed1],hd2=dis[ed2];
spfa1(ed1);int hd12=dis[ed2];
spfa2(1);
int rd1=dis[ed1],rd2=dis[ed2];
int ans1=min(hd1,hd2)+hd12;int ans2=min(max(hd1,rd2),max(hd2,rd1));
printf("%d",min(ans1,ans2));
return 0;
}
T3:PION贪吃蛇
不会。。。
【洛谷】NOIP2018原创模拟赛DAY1解题报告的更多相关文章
- CH Round #54 - Streaming #5 (NOIP模拟赛Day1)解题报告
最近参加了很多CH上的比赛呢~Rating--了..题目各种跪烂.各种膜拜大神OTZZZ T1珠 描述 萌蛋有n颗珠子,每一颗珠子都写有一个数字.萌蛋把它们用线串成了环.我们称一个数字串是有趣的,当且 ...
- 洛谷 P5046 [Ynoi2019 模拟赛] Yuno loves sqrt technology I(分块+卡常)
洛谷题面传送门 zszz,lxl 出的 DS 都是卡常题( 首先由于此题强制在线,因此考虑分块,我们那么待查询区间 \([l,r]\) 可以很自然地被分为三个部分: 左散块 中间的整块 右散块 那么这 ...
- 【HHHOJ】NOIP模拟赛 捌 解题报告
点此进入比赛 得分: \(30+30+70=130\)(弱爆了) 排名: \(Rank\ 22\) \(Rating\):\(-31\) \(T1\):[HHHOJ260]「NOIP模拟赛 捌」Dig ...
- 洛谷 P2323 [HNOI2006]公路修建问题 解题报告
P2323 [HNOI2006]公路修建问题 题目描述 输入输出格式 输入格式: 在实际评测时,将只会有m-1行公路 输出格式: 思路: 二分答案 然后把每条能加的大边都加上,然后加小边 但在洛谷的题 ...
- 【HHHOJ】NOIP模拟赛 玖 解题报告
点此进入比赛 得分: \(100+20+100=220\)(还不错) 排名: \(Rank\ 16\) \(Rating\):\(+20\) \(T1\):[HHHOJ263]「NOIP模拟赛 玖」三 ...
- 冲刺Noip2017模拟赛2 解题报告——五十岚芒果酱
题1 牛跑步(running) [题目描述] 新牛到部队,CG 要求它们每天早上搞晨跑,从 A 农场跑到 B 农场.从 A 农场到 B 农场中有 n- 个路口,分别标上号,A 农场为 号,B 农场为 ...
- 冲刺Noip2017模拟赛1 解题报告——五十岚芒果酱
题1 国际象棋(chess) [问题描述] 有N个人要参加国际象棋比赛,该比赛要进行K场对弈.每个人最多参加2场对弈,最少参加0场对弈.每个人都有一个与其他人都不相同的等级(用一个正整数来表示).在对 ...
- 20161005 NOIP 模拟赛 T2 解题报告
beautiful 2.1 题目描述 一个长度为 n 的序列,对于每个位置 i 的数 ai 都有一个优美值,其定义是:找到序列中最 长的一段 [l, r],满足 l ≤ i ≤ r,且 [l, r] ...
- 冲刺Noip2017模拟赛5 解题报告——五十岚芒果酱
1. 公约数(gcd) [问题描述] 给定一个正整数,在[,n]的范围内,求出有多少个无序数对(a,b)满足 gcd(a,b)=a xor b. [输入格式] 输入共一行,一个正整数n. [输出格式] ...
随机推荐
- rpm yum apt-get redhat centos ubuntu
rpm是由红帽公司开发的软件包管理方式,使用rpm我们可以方便的进行软件的安装.查询.卸载.升级等工作.但是rpm软件包之间的依赖性问题往往会很繁琐,尤其是软件由多个rpm包组成时.Yum(全称为 Y ...
- Struts2_learning
一.这是我学习struts2所做的一个记录,因为整个过程较为麻烦,所以,记录下来,以便以后使用 过程: 步骤: 1)dynamic web project 2)jars 3)struts.xml pa ...
- 20155325 Exp2 后门原理与实践
基础问答 例举你能想到的一个后门进入到你系统中的可能方式? 乱点链接 学电脑小白不正确配置电脑 下载非官网软件 例举你知道的后门如何启动起来(win及linux)的方式? 软件:ncat socat ...
- 使用HibernateDaoSupport抽取BaseDao
在开发采用Struts2+Spring+hibernate这三大框架的项目时,我们需要一个抽取一个BaseDao.这个Dao里面CRUD都给封装好,后续的其他Dao直接用它的功能就可以 ...
- Class does not Implement Equals——Code Correctness(代码正确性)
系列文章目录: 使用Fortify进行代码静态分析(系列文章) class does not implement equals(类未能实现Equals方法) 示例: protec ...
- 外部事件/中断的区别及EXTI->SWIER的用途
EXTI_SWIER作用:允许我们通过程序控制就可以启动中断/事件线 1.产生事件的线路最终的产物是一个脉冲信号,这个脉冲信号可以给其他外设电路使用,比如定时器TIM.模拟数字转换器ADC等等. 2. ...
- 关于元素设置margin-top能够改变body位置的原因及解决(子元素设置margin-top改变父元素定位)
关于元素设置margin-top能够改变body位置的原因及解决(子元素设置margin-top改变父元素定位) 起因:在进行bootstrap的.navbar-brand内文字设置垂直居中时采用li ...
- 《无所不能的JavaScript编程系列:setTimeout 简笔》
前言:问题引出 JavaScript中会经常用到setTimeout来推迟一个函数的执行,如: setTimeout(function(){alert("Hello World") ...
- Unity5.6之前版本VRTK插件基础交互
一.VR运行环境配置: 安装steam,在steam上安装SteamVR驱动. 在Unity项目中需要导入VRTool插件包(已上传服务器),里面包含两个插件一个是SteamVR插件,一个是VRTK插 ...
- linux内核分析第二次实验
http://blog.sina.com.cn/s/blog_78e559950102wnqp.html