[题解]RQNOJ PID86 智捅马蜂窝】的更多相关文章

链接:http://www.rqnoj.cn/problem/86 思路:单源点最短路 建图:首先根据父子关系连双向边,边权是距离/速度:再根据跳跃关系连单向边,边权是自由落体的时间(注意自由下落是一个匀加速过程,若中途停下再跳一定没有直接跳优). 我的实现: 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <cmath> 5 #include <alg…
题目描述 背景 为了统计小球的方案数,平平已经累坏了.于是,他摘掉了他那800度的眼镜,躺在树下休息. 后来,平平发现树上有一个特别不一样的水果,又累又饿的平平打算去把它摘下来. 题目描述 现在,将大树以一个N个节点的无向图的形式给出,每个节点用坐标(Xi,Yi)来表示表示,平平要从第一个点爬到第N个点,除了从一个节点爬向另一个相邻的节点以外,他还有一种移动方法,就是从一个节点跳下,到达正下方的某个节点(之间可隔着若干个点和边),即当Xj=Xi and Yi<Yj 时,平平就可以从j节点下落到i…
链接:http://www.rqnoj.cn/problem/87 思路:动态规划 定义f[i][j]表示到达第 i 块给定石头用了 j 块添加石头的最少步数. 转移方程:f[i][j]=min{f[k][j-tmp[pos[i]-pos[k]]+1]+tmp[pos[i]-pos[k]]} ,其中0<=k<i 且tmp[pos[i]-pos[k]]-1<=j 其中pos[i]表示第 i 块给定石头的坐标,tmp[i]表示跨过距离 i 需要添加的石头(相当于从坐标0出发到坐标 i ,注意…
链接:http://www.rqnoj.cn/problem/85 思路:一个排列问题,递推式很简单,f(n+1)=3*f(n)-1 ,由此可以推出通项公式,f(n)=0.5*3^(n-1)+0.5 . 但是这个数太大了,我们需要求的是f(n) mod K .那么就必须考虑同余的性质. 我们知道2m≡a mod k 并不能推出m≡a/2 mod k ,但是2m≡a mod 2*k 却可以推出m≡a/2 mod k .借助此性质再加上一个快速幂即可得出答案. 我的实现: 1 #include <i…
[BZOJ1177][Apio2009]Oil 试题描述 采油区域 Siruseri政府决定将石油资源丰富的Navalur省的土地拍卖给私人承包商以建立油井.被拍卖的整块土地为一个矩形区域,被划分为M×N个小块. Siruseri地质调查局有关于Navalur土地石油储量的估测数据.这些数据表示为M×N个非负整数,即对每一小块土地石油储量的估计值. 为了避免出现垄断,政府规定每一个承包商只能承包一个由K×K块相连的土地构成的正方形区域. AoE石油联合公司由三个承包商组成,他们想选择三块互不相交…
开始更新咯 DP专题[题目来源BZOJ] 一.树形DP 1.bzoj2286消耗战 题解:因为是树形结构,一个点与根节点不联通,删一条边即可, 于是我们就可以简化这棵树,把有用的信息建立一颗虚树,然后开始DP即可 /* 思路: */ #include<algorithm> #include<cstdio> #include<cmath> #include<iostream> #include<cstring> #define ll long lo…
A. Gabriel and Caterpillar 题目连接: http://www.codeforces.com/contest/652/problem/A Description The 9-th grade student Gabriel noticed a caterpillar on a tree when walking around in a forest after the classes. The caterpillar was on the height h1 cm fro…
题面 NOI2003 智破连环阵 有 \(m\) 个靶子 \((ax_j,ay_j)\) 和 \(n\) 个箭塔 \((bx_i,by_i)\).每个箭塔可以射中距离在 \(k\) 以内的靶子.第 \(i+1\) 只有第 \(i\) 个靶子被射中时才能被射中.每个箭塔只能用一次,现在可以安排每个箭塔的射击顺序,求最少需要几个箭塔可以射光 \(m\) 靶子. 数据范围:\(1\le m,n\le 100\),\(1\le k\le 1000\),\(1\le ax_j,ay_j,bx_i,by_i…
\[ \texttt{Description} \] 编程找出符合下列条件的字符串:①字符串中仅包含 0 和 1 两个字符:②字符串的长度为 n :③字符串中不包含连续重复三次的子串. \[ \texttt{Solution} \] 考虑到,将一个串延长至 \(3\) 倍,就成了连续重复三次的串. 于是我们枚举长度在 \(\frac{n}{3}\) 以内的所有 \(0/1\) 串,将其延长至 \(3\) 倍,插入 \(AC\) 自动机中,显然这样插入,所有串的总长是可以承受的,在每个串的结尾,我…
留念 C - 志愿者 排序..按照题目规则说的排就可以.wa了两发我太菜了qwq #include<bits/stdc++.h> using namespace std; const int MAXN = 1e6 + 10; inline int read() { char c = getchar(); int x = 0, f = 1; while(c < '0' || c > '9') {if(c == '-') f = -1; c = getchar();} while(c…
目录 A B C D E F G 今年题目难度普遍偏低.只有 D,F 还好. A 按题目给的公式计算即可.注意应在最后的答案中去掉小数部分. B 按照题意模拟即可.注意答案要与 \(0\) 取 \(\max\) . C 按照题意模拟即可.注意应该先做乘法在做除法,或者把后面的值用 double 或 float 数据类型的变量存储,并在最后去掉小数部分. 时间复杂度 \(\mathcal O(n)\). D 设 \(x \oplus y = p\) ,则 \(x \oplus p = y\).因此…
以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #include <string.h> #include <time.h> #include <stdlib.h> #include <string> #include <bitset> #include <vector> #include <…
笔者注:本文来自于迅雷首席工程师刘智聪的个人分享,他毕业于南昌大学化学系,加入迅雷后设计开发了多款迅雷核心产品,凭借“大规模网络流媒体服务关键支撑技术”项目获得2015年国家科学技术进步奖二等奖,同时也是第四代UI交互技术-----BOLT 界面引擎的发明人,目前担任WebApp解决方案商--火速移动的首席技术顾问. 21号晚上正和朋友一起打牌,难得的小七对刚刚定口,突然间手机传来了“叮咚”的消消息提示音,随后就是“叮叮,咚咚”的连续震动.打开手机一看,微信上一堆人发信息给我,先是一篇<微信应用…
原题地址:http://www.rqnoj.cn/problem/5 解题思路: 今天刚刚才知道了区间DP..Orz..本来以为是状态压缩DP,后来看到数据量才发现原来不是.后来参考了别人的题解.自己整理了思路: 问题现在变成从一堆数里面按某个顺序取走一些数,每次取走一个数的时候会得到能量,求最大能获得的能量. 由于是环状的,先将序列延长一倍,第n个数字等于第0个数字,第n+1个数字为第1个数字...依次类推. a[i]表示第i个数 状态表示: DP[i][j]表示在区间[i,j]中,除了a[i…
NOIP2000 提高组 题解 No 1. 进制转换 https://www.rqnoj.cn/problem/295 水题 对于n和基数r, 每次用n mod r, 把余数按照逆序排列 注意 mod后余数必须为正 int n,r; ]={','A','B','C','D','E','F','G','H','I','J'}; int main() { ios_base::sync_with_stdio(); while(cin>>n>>r) { cout<<n; str…
题目链接:https://www.rqnoj.cn/problem/201 题意: 开始时n(n<=1000)个人手拉手围成一个圈. 后来这些人中的一些按顺序向里面出圈形成一个新圈.从而使原圈形成一个从高到低,最低与最高连接的圈. 新圈重复相同的操作,直到没有人要出圈为止. 问最少要形成多少个这样的圈. 题解: (1)拼链成环: 对于一个环,可以用两条由环拆开的链拼在一起表示. 例如:有一个环为"1,2,3,4"(1和4连在一起),则可以表示为"1,2,3,4,1,2,…
初中 初一参加学校信息学选修课,一周一节课,学pascal. 初一寒假(大约是)入选(其实是钦定吧)当时加上我只有3人的校队(我当然是最弱的一个. 当时甚至有幸得到叉姐授课(现在才知道这是多么难得的机会啊 叉姐:我们来讲一下堆吧,你们知道二叉树吗?(ZYX.ZR点头,我摇头 叉姐:没关系,那你知道树吗? 我:... 叉姐:... 寒假以参观者身份去了广州GDKOI,题目好难啊,这辈子大概都不会做的吧. 回来时候开始刷(shui)RQNOJ,各种抄题解啊,水数据,(强行)50题. 接下来一段时间我…
HNOI2018简要题解 D1T1 寻宝游戏 题意 某大学每年都会有一次 Mystery Hunt 的活动,玩家需要根据设置的线索解谜,找到宝藏的位置,前一年获胜的队伍可以获得这一年出题的机会. 作为新生的你对这个活动非常感兴趣.你每天都要从西向东经过教学楼一条很长的走廊,这条走廊是如此的长,以至于它被人戏称为 infinite corridor.一次,你经过这条走廊的时,注意到在走廊的墙壁上隐藏着 \(n\) 个等长的二进制的数字,长度均为 \(m\).你从西向东将这些数字记录了下来,形成一个…
题面 乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过50. 现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍和它们的长度. 给出每段小木棍的长度,编程帮他找出原始木棍的最小可能长度. 题意 有n段同样长的木棍,现在将这n段木棍随意分段(保证每段长度不超过50).乔治比较闲,又想把它拼回原始木棍,但是又比较智障,忘了原来有多少根,长度是多少. 给出每段的长度,求出木棍最小可能长度.(使n尽量大,又要保证每段都拼上) 题解 题目看上去很简单,也很好想到…
C - Triangular Relationship 题解 枚举一个数%K的值然后统计另两个 代码 #include <bits/stdc++.h> #define enter putchar('\n') #define space putchar(' ') #define pii pair<int,int> #define fi first #define se second #define MAXN 200005 #define pb push_back //#define…
喵哈哈村的魔法考试 Round #1 (Div.2) 题解 特别感谢出题人,qscqesze. 也特别感谢测题人Xiper和CS_LYJ1997. 没有他们的付出,就不会有这场比赛. A 喵哈哈村的魔法石 暴力(qscqesze):观察数据范围,显然最多10000个A,10000个B,所以最暴力的做法就是两个for循环,一个forA,一个forB,复杂度就是O(10000*10000),这个出题人因为是div2 A,所以就直接放过了的. 机智的做法(CS_LYJ1997):在暴力的基础上优化,第…
因为灵巧实在太弱辽不得不做点noip续下命QQAQQQ 2018 积木大赛/铺设道路 傻逼原题? 然后傻逼的我居然检查了半天是不是有陷阱最后花了差不多一个小时才做掉我做过的原题...真的傻逼了我:( #include<bits/stdc++.h> using namespace std; #define ll long long #define rp(i,x,y) for(register ll i=x;i<=y;++i) +; ll n,d[N],ans; inline ll read…
Bigger系列题解 Bigger Python 坑点在于要高精度以及表达式求值,用java写可以很容易避免高精度问题 然后这道题就可以AC了 代码 import java.io.*; import java.util.*; import java.math.*; import java.text.*; public class Main { static Map<String,BigInteger> map= new HashMap<String,BigInteger>(); s…
今天考了一场小测试,额,非常非常水,但是智障的我才A掉两道题. T1: 1.暑假作业   (mtime.pas/c/cpp) [问题描述] 暑假作业是必须要写的,越到假期结束前,写作业的效率就越高,小x就面临这个问题. 现在小x有n个作业要完成.(1 <= N <= 1,000)并且每个作业有两个属性:Ti和Si.Ti表示第i项作业需要Ti的时间来完成,Si表示最迟必须Si时刻完成第i项作业. 现在假设开始时刻为0,而小x想知道最晚什么时候开始写作业,可以把作业完成,这样他可以知道自己可以浮躁…
题目链接:https://www.rqnoj.cn/problem/188 题意: 商场以超低价格出售n个商品,购买第i个商品所节省的金额为w[i]. 为了防止亏本,有m对商品是不能同时买的.但保证商品关系不出现环,不会出现如:(1,2) , (2,4) , (1,4). 问你最多能节省的金额. 题解: 简直和POJ 2342 Anniversary party像极了(*/ω\*) 将不能同时买的商品间连一条无向边. 所以子节点和父节点不能同时选. 唯一不同的是POJ是一棵树,而这道题是一片森林…
题目链接:https://www.rqnoj.cn/problem/569 题意: 在一个数轴上可以摆M个线段,每个线段的起始终止端点给定(为整数),且每个线段有一个分值,问如何从中选取一些线段使得任意两个线段之间的距离大于等于R.每一条线段属于[0,N].如何选择这些线段,使得分值之和最大? 定义:两线段间的距离 = 相邻端点坐标之差的绝对值 题解: 讲真...这里的N真的没用... 首先要用左端点从小到大排序. 表示状态: dp[i] = max score (选了线段i的当前最大分值) i…
题目链接:https://www.rqnoj.cn/problem/514 题意: 设有字符串X,我们称在X的头尾及中间插入任意多个空格后构成的新字符串为X的扩展串,如字符串X为”abcbcd”,则字符串”abcb_cd”,”_a_bcbcd_”和”abcb_cd_”都是X的扩展串,这里“_”代表空格字符. 如果A1是字符串A的扩展串,B1是字符串B的扩展串,A1与B1具有相同的长度,那么我扪定义字符串A1与B1的距离为相应位置上的字符的距离总和,而两个非空格字符的距离定义为它们的ASCII码的…
题目链接:https://www.rqnoj.cn/problem/328 题意: 司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队. 一个N*M的地图由N行M列组成(N≤100,M≤10),地图的每一格可能是山地(用'H' 表示),也可能是平原(用'P'表示),如下图. 在每一格平原地形上最多可以布置一支炮兵部队(山地上不能够部署炮兵部队): 一支炮兵部队在地图上的攻击范围如图中黑色区域所示: 如果在地图中的灰色所标识的平原上部署一支炮兵部队,则图中的黑色的网格表示它能够攻击到的区域:…
题目链接:https://www.rqnoj.cn/problem/311 题意: 给你一个长度为n的数字,用t个乘号分开,问你分开后乘积最大为多少.(6<=n<=40,1<=k<=30) 题解: 简化问题: 给原数字之前添加一个"1 *",乘号不计入数量,对答案无影响. 例如:"1231"可以变成"(1*)1231". 表示状态: dp[i][j] = max num(最后一个乘号之前的最大乘积) i:此时在第i个数的前…
题目链接:https://www.rqnoj.cn/problem/169 题意: 给出行驶1-10公里的费用(所有车一样),可以倒车,问行驶n公里的最小费用. 题解: 大水题... (=´ω`=) 表示状态: dp[i] = min cost i:行驶了i公里 找出答案: ans = dp[n] 如何转移: now: dp[i] dp[i+j] = min dp[i] + c[j] 枚举倒车行驶j公里 边界条件: dp[0] = 0 others = -1 AC Code: // state…