牛客OI周赛7-普及组 解题报告】的更多相关文章

出题人好评. 评测机差评. A 救救喵咪 二位偏序.如果数据范围大的话直接树状数组,不过才1000就\(O(n^2)\)暴力就ok了. #include <bits/stdc++.h> struct Node { int x, y; }a[1010]; int main() { int n; std::cin >> n; for(int i = 1; i <= n; ++i) { std::cin >> a[i].x >> a[i].y; } for(…
牛客OI周赛9-提高组题目记录 昨天晚上做了这一套比赛,觉得题目质量挺高,而且有一些非常有趣而且非常清奇的脑回路在里边,于是记录在此. T1: 扫雷 题目链接 设 \(f_i\) 表示扫到第 \(i\) 个雷的期望用时,那么我们要求的答案就是 \(f_n\). 我们不难写出一个递推式: \[ f_{i +1} = \left((f_i +1) \cdot \dfrac{a_i}{b_i}\right) + \left(2(f_i + 1) \cdot \dfrac{b_i - a_i}{b_i}…
牛客OI周赛8-提高组A-用水填坑 题目 链接: https://ac.nowcoder.com/acm/contest/403/A 来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 131072K,其他语言262144K 64bit IO Format: %lld 题目描述 现有一块nm的地,每块11的地的高度为hi,j,在n*m的土地之外的土地高度均为0(即你可以认为最外圈无法积水) 现在下了一场足够大的雨,试求出这块地总共积了多少单位体积的水 输入描述: 第一行…
A.游戏 链接:https://www.nowcoder.com/acm/contest/210/A来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语言262144K 64bit IO Format: %lld 题目描述 BLUESKY007,fengxunling和dreagonm三个人发现了一个像素游戏,这款神奇的游戏每次会生成一个nxm的网格,其中每一个格子都被随机染色为R,G,B三种颜色之一,每次都可以选择任意一个非B颜色的格子进行一次操…
链接:https://ac.nowcoder.com/acm/contest/942/B 来源:牛客网 Game with numbers 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 给定大小为 n n的集合 S S 一个数 x x被称为合法的,当且仅当 x ∈ S x∈S或者 x x存在大于 1 1的真因数,且这些真因数均是合法的 求有多少个数 x x满足 2 ≤ x ≤ m 2≤…
链接:https://ac.nowcoder.com/acm/contest/371/A来源:牛客网 小睿睿在游戏开始时有n根火柴棒,他想知道能摆成形如“A+B=n”的等式且使用的火柴棒数也恰好等于n/k的等式有多少种(B+A=n与A+B=n看作一种) 注: “=”与“+”分别需要使用2根火柴棒 输入描述: 一行2个整数n,k,保证n取模k为0 输出描述: 一行一个整数,表示答案 思路,打表存下每个数字对应消耗的火柴数 #include<iostream> using namespace st…
链接:https://ac.nowcoder.com/acm/contest/371/B来源:牛客网 小睿睿的n个妹纸排成一排,每个妹纸有一个颜值val[i].有m个询问,对于每一个询问,小睿睿想知道区间[L,R]颜值最高而编号最小的妹纸是哪一个 对于妹纸们的颜值val[i],其生成函数为: void generate_array(int n,int seed) {     unsigned x = seed;     for (int i=1;i<=n;++i)     {         x…
https://ac.nowcoder.com/acm/contest/901/A 很简单的一道题,全场只有20+AC,卡时间.新学了cin加速语法和数组二分查找的函数调用. 知道有个读写挂,可以加速,一直懒得去看,今天终于栽在时间上了. ios::sync_with_stdio(0); cin,cout之所以效率低,是因为先把要输出的东西存入缓冲区,再输出,导致效率降低,而这段语句ios::sync_with_stdio(false);可以来打消iostream的输入 输出缓存,可以节省许多时…
比赛地址 A 小Q想撸串 题目分析 普及T1水题惯例.字符串中找子串. Code #include<algorithm> #include<iostream> #include<cstring> #include<cstdio> #include<cmath> using namespace std; inline int read() { int x=0,f=1; char ch=getchar(); while(ch<'0' || ch…
https://ac.nowcoder.com/acm/contest/543#question A. 代码: #include <bits/stdc++.h> using namespace std; int N; vector<int> v; int main() { scanf("%d", &N); v.resize(N); ; i < N; i ++) scanf("%d", &v[i]); int ans; s…
https://ac.nowcoder.com/acm/contest/371#question A.小睿睿的等式 #include <bits/stdc++.h> using namespace std; int N, K, M; ] = {, , , , , , , , , }; int rec(int x) { ; while(x) { res += num[x % ]; x /= ; } return res; } int main() { scanf("%d%d"…
https://ac.nowcoder.com/acm/contest/372#question A.救救猫咪 #include <bits/stdc++.h> using namespace std; ; int N; struct Node { int x; int y; int cnt; }node[maxn]; int main() { scanf("%d", &N); ; i < N; i ++) scanf("%d%d", &a…
践踏 思路: 如果k不为0, 那么就是对k取模意义下的区间更新, 单点查询 否则, 就是普通的区间更新, 单点查询 代码: #pragma GCC optimize(2) #pragma GCC optimize(3) #pragma GCC optimize(4) #include<bits/stdc++.h> using namespace std; #define fi first #define se second #define pi acos(-1.0) #define LL lo…
大法师与魔法石 思路: 对于一个ai, 它可以构成区间[ai/v, ai] 假设和它相邻的为aj, 那么ai 和 aj 构成的区间为[(ai+aj) / v, ai+aj] 那么这两个区间能合并的条件是 (ai + aj) / v <= ai 即aj <= (v - 1)ai (v >= 2) 又因为(v - 1) ai >= ai 所以aj <= ai 所以把每个ai和它相邻的比它小的数连接起来考虑 用单调栈求出每个位置之前和之后第一个比它大的数就可以了 代码: #prag…
战争(war) 思路: 二分答案, 找到第一个不满足条件的位置 首先对于一个值来说, 所有这个值的区间肯定有交区间, 然后在这个交区间内不能出现比它小的数 所以我们check时从大的值开始考虑, 求出交区间后并标记(用并查集), 如果之后的区间被标记过,那就说明有矛盾 代码: #pragma GCC optimize(2) #pragma GCC optimize(3) #pragma GCC optimize(4) #include<bits/stdc++.h> using namespac…
最后的晚餐(dinner) 思路: 容斥 求 ∑(-1)^i * C(n, i) * 2^i * (2n-i-1)! 这道题卡常数 #pragma GCC optimize(2) #pragma GCC optimize(3) #pragma GCC optimize(4) #include<bits/stdc++.h> using namespace std; #define fi first #define se second #define pi acos(-1.0) #define L…
K小生成树(kmst) 思路: 暴力+并查集 枚举边的子集,用并查集判断两个点联不联通 代码: #include<bits/stdc++.h> using namespace std; #define fi first #define se second #define pi acos(-1.0) #define LL long long //#define mp make_pair #define pb push_back #define ls rt<<1, l, m #defi…
题意 一个长度为 \(n\) 的序列,每个权值互不相同,给出形如 \(l,r,p\) 的信息表示 \([l,r]\) 区间中最小的数是 \(p\) ,问第几个信息开始出现矛盾. \(n\leq 5 \times 10^5\) . 分析 二分答案再判前 \(mid\) 个信息是否合法. 相同 \(p\) 的区间的 \(p\) 一定出现在这些区间的交中. 分析出现矛盾的两种情况: 相同权值的区间没有交集 相同权值的区间有交集,但是这些位置一定要填 \(>p\) 的数 考虑将区间按照权值从大到小排序,…
题意 给你长度为 \(n\) 的两个排列 \(A,B\) 组成的序列,求最少的交换相邻数字的次数使得 \(A,B\) 分别有序. \(n\leq 2000\) . 分析 如果只有一个排列时最少交换次数为逆序对数,方案可从小到大枚举数字 \(a_i\),并向左移动直到前面的数有序且没有比 \(a_i\)大的数为止. 发现当前序列的每个数字仍然会按照上述方式交换,否则逆序对仍要交换且还有多余的部分. 只是两个序列的错杂交换会相互影响,于是考虑定义状态 \(f_{i,j}\) 表示 \(A\) 序列的…
https://ac.nowcoder.com/acm/contest/2970/A 给出长度为n的一连串位运算符号,用n+1个0或1使运算插入最后得到1,求01序列有多少种可能. dp[i][j]表示进行第j个运算符后得到i的种数,i=0或1: 很容易得到各种运算符的dp递推式 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan=new Scann…
做法 单点加单点删,在值域线段树上直接二分就能求值前\(K\)小的和 Code #include<bits/stdc++.h> typedef long long LL; const LL maxn=1e6+9; inline LL Read(){ LL x(0),f(1); char c=getchar(); while(c<'0' || c>'9'){ if(c=='-') f=-1; c=getchar(); } while(c>='0' && c<…
比赛情况 1h才写出T1 100pts + T2 50pts(都是简单dp可还行).然后就去颓废了.颓废完来康康T3的暴力,wow,T3咋这么难呢!?期望概率好像不太会了,退了吧qwq. 所以最后 100+50+0=150pts, rank 22. 比赛总结 说实话比赛前还有些紧张呢,但是我这次吸取了经验,牢记dalao之前对我讲的,"花2h肝T1,T2是值得的."(CSP-S就是因为花2h+肝T3暴力,让我留下了终身的遗憾),于是安心写T1,T2,稳扎稳打拿下150pts 在这次比赛…
前话: 话说考试描述:普及难度. 于是想在这场比赛上涨点信心. 考出来的结果:Point:480     Rank:40 然而同机房的最好成绩是 510. 没考好啊!有点炸心态,D题一些细节没有注意,然后B题简单的贪心没有想到,GG-再给我30分钟我能AK! A题:数字权重 题目描述 小a有一个n位的数字,但是它忘了各个位上的数是什么,现在请你来确定各个位上的数字,满足以下条件: 设第i位的数为ai,其中a1为最高位,an为最低位,K为给定的数字 1. 不含前导0 2. 请你求出满足条件的方案数…
牛客OI月赛12-提高组 当天晚上被\(loli\)要求去打了某高端oj部分原创的模拟赛,第二天看了牛客的题觉得非常清真,于是就去写了 不难发现现场写出\(260\text{pts}\)并不需要动脑子,而且\(260\text{pts}\)甚至还有\(rk2\),感觉没打非常吃亏 A.小w的进制转换 大概理解一下就是询问\(1\)到\(n\)里有多少个数的二进制表示是反回文形式的,即对称位置是相反的,比如\(1001,101010\) 之后根据题意,这个反回文的二进制串长度必须是偶数(因为长度为…
概述 \(NOIP2016\)普及组的前三题都比较简单,第四题也有很多的暴力分,相信参加了的各位\(OIer\)在\(2016\)年都取得了很好的成绩. 那么,我将会分析\(NOIP2016\)普及组的四道题目,希望对各位的\(OI\)学习有所帮助! T1. 买铅笔 题目描述 \(P\)老师需要去商店买\(n\)支铅笔作为小朋友们参加\(NOIP\)的礼物.她发现商店一共有\(3\)种包装的铅笔,不同包装内的铅笔数量有可能不同,价格也有可能不同.为了公平起见,\(P\)老师决定只买同一种包装的铅…
NOIP2015普及组题目下载 NOIP2016普及组题目下载 NOIP2015普及组题目: NOIP2018RP++ NOIP2016普及组题目 NOIP2018RP++ T1 金币\((coin.cpp/c/pas)\) 题意 第一天,骑士收到一个金币,第二.三天,收到两个金币,第四.五.六天,收到三个金币......问\(k\)天,骑士一共收到几个金币? 数据范围 对于 100%的数据,\(1 ≤ K ≤ 10,000\). 思路 这道题很水 看完数据范围,果断枚举啦. 废话不多说,我知道…
目录 标题统计 题目链接 思路 代码 龙虎斗 题目链接: 思路 代码 摆渡车 题目链接: 思路 对称二叉树 题目链接 思路: 先来解释一下为毛现在才来发解题报告: 其实博主是参加过NOIP 2018普及组的复赛的,不过当时成绩垃圾的一批.只混到一个三等奖...... 今天老师又给考了一遍noip2018普及的题,结果第三题还是不太会,卧槽.....这.....不过我竟然用暴力dfs+剪枝过了(只是在网上luogu过了,本地TLE下面会说到的,咕咕咕) 下面是正式的解题报告: 标题统计 题目链接…
刚参加完NOIP2017普及,只考了210,于是心生不爽,写下了这篇解题报告...(逃 第一次写博,望dalao们多多指导啊(膜 第一题score,学完helloworld的人也应该都会吧,之前好多人0分或60分据说是精度炸了,后面不是又重测了么233 直接给代码 #include <stdio.h> int a,b,c; double a1,b1,c1; int main() { scanf("%d %d %d",&a,&b,&c); a1=a*0…
小A与任务 链接: https://ac.nowcoder.com/acm/contest/369/B 来源:牛客网 题目描述 小A手头有 \(n\) 份任务,他可以以任意顺序完成这些任务,只有完成当前的任务后,他才能做下一个任务 第 \(i\) 个任务需要花费 \(x_i\) 的时间,同时完成第 \(i\) 个任务的时间不能晚于\(y_i\) ,时间掌控者向小A提出了一个条件:如果完成第 \(i\) 个任务的时间本应是 \(t\) ,但小A支付 \(m\) 个金币的话,他可以帮助小A在$ t−…
比赛连接戳这里^_^ 我才不会说这是我出的题(逃) 周赛题解\((2018.10.14)\) \(T1\) \(25\sim50\)分做法\(:\)直接爆搜 作为一个良心仁慈又可爱的出题人当然\(T1\)要送分啦\(qwq\) \(100\)分做法\(:\) 其实只需要看左上角就行了,因为题目描述写的很清楚,三个人的操作都是为了BLUESKY007能赢,所以游戏一定会结束,那么当横纵坐标最大的非\(B\)颜色方格变为\(B\)颜色时,可操作的方格范围显然是趋向收敛的,又因为操作规则的要求,左上角…