NOIP2011题解】的更多相关文章

铺地毯 题解:比大小 #include <cstdio> +; int n, x, y, a[MAXN], b[MAXN], g[MAXN], k[MAXN]; inline int Solve(){ ; i--) if (a[i]<=x && x<=a[i]+g[i] && b[i]<=y && y<=b[i]+k[i]) return i; ; } int main(){ scanf("%d", &…
NOIP2011其实早就做完了....一直懒得写.... Day1 T1铺地毯 我什么都不想说,不会做您就没必要接着看了.... #include<iostream> using namespace std; #define MAX 10001 int a[MAX],b[MAX],c[MAX],d[MAX],xx,yy,ans=-1,n; int main() { cin>>n; for(int i=1;i<=n;++i)cin>>a[i]>>b[i]…
题目背景 在双人对决的竞技性比赛.如乒乓球.羽毛球.国际象棋中.最常见的赛制是淘汰赛和循环赛.前者的特点是比赛场数少.每场都紧张刺激,但偶然性较高.后者的特点是较为公平,偶然性较低,但比赛过程往往十分冗长.本题中介绍的瑞士轮赛制,因最早使用于1895年在瑞士举办的国际象棋比赛而得名. 它能够看作是淘汰赛与循环赛的折衷,既保证了比赛的稳定性,又能使赛程不至于过长. 题目描写叙述 2*N 名编号为 1~2N 的选手共进行R 轮比赛. 每轮比赛開始前.以及全部比赛结束后,都会依照总分从高到低对选手进行…
题目描述 风景迷人的小城 Y 市,拥有 \(n\) 个美丽的景点.由于慕名而来的游客越来越多,Y 市特意安排了一辆观光公交车,为游客提供更便捷的交通服务. 观光公交车在第 \(0\) 分钟出现在 \(1\) 号景点,随后依次前往 \(2,\) \(3,\) \(\dots,\) \(n\) 号景点.从第 \(i\) 号景点开到第 \(i+1\) 号景点需要 \(D_i\) 分钟.任意时刻,公交车只能往前开,或在景点处等待. 设共有 \(m\) 个游客,每位游客需要乘车 \(1\) 次从一个景点到…
631. [NOIP2011] 聪明的质监员 ★★   输入文件:qc.in   输出文件:qc.out   简单对比时间限制:1 s   内存限制:128 MB [问题描述] 小 T 是一名质量监督员,最近负责检验一批矿产的质量.这批矿产共有n个矿石,从 1 到n逐一编号,每个矿石都有自己的重量wi以及价值vi.检验矿产的流程是: 1. 给定 m个区间[Li,Ri]: 2. 选出一个参数W: 3. 对于一个区间[Li,Ri],计算矿石在这个区间上的检验值Yi: Yi=∑j1×∑jvj, j∈[…
[NOIP2011]计算系数 Description 给定一个多项式 (ax+by)^k ,请求出多项式展开后 x^n * y^m 项的系数. Input 共一行,包含 5 个整数,分别为 a,b,k,n,m,每两个整数之间用一个空格隔开. Output 输出共 1 行,包含一个整数,表示所求的系数,这个系数可能很大,输出对 10007 取模后的结果. Sample Input 1 1 3 1 2 Sample Output 3 Hint [数据范围] 对于 30%的数据,有 0≤k≤10: 对…
题面 题解 不难发现,\(W\)增大时,\(Y\)值会随之减小. 于是考虑二分\(W\). 如何\(\mathcal{O}(N)check?\) 每一次前缀和记录一下\(1-i\)之间\(w_i \ge W\)的个数及\(v_i\)之和. 计算出\(|Y_1+Y_2+-+Y_m-S|\),与当前的最小答案取最小值. 返回\(Y_1+Y_2+-+Y_m > S\). 代码 #include <bits/stdc++.h> #define int long long #define itn…
题目大意: 就省了吧 思路: 应该算是贪心. 不难发现,加速只对所有在使用加速器之后连续的一段下车时不用等人的站点下车的人有用.这非常重要. 先算出不加速时的和,并预处理出每个站点最迟到的人的时间.每个站下车的人数.然后一个一个放加速器,加速器放在惠及最多的人的一段,同时维护到每个站点的时间(判断用不用等人). 于是就有了一种比较暴力的算法:每次n2暴力求解每次加速后停下来的站点,再修改答案.维护数组. 但是这似乎会TLE(虽然官方数据貌似AC了),于是就有了优化.你可以逆推求解停下来的站点,再…
题目大意: 额--貌似蛮清晰的,就不赘述了. 思路: 首先不难发现M越大Y越小,因此可以二分答案(方向不要弄错),二分出最小的不小于S的Y即可.而计算Y时可用前缀和O(n+m)求得.两种边界情况也要考虑一下(同时long long不要少开). 代码: #include<cstdio> #include<iostream> using namespace std; #define ll long long ; int n,m,i,h,t,k,mn,mx,mid,w[M],v[M],l…
题目大意: 有一个5*7的方格,上面有几种颜色的方块,如果在一横行或者竖列上有连续三个或者三个以上相同颜色的方块,则它们将立即被消除,方块消除之后,消除位置之上的方块将掉落.每步移动可以且仅可以沿横向拖动某一方块一格:当拖动这一方块时,如果拖动后到达的目标位置也有方块,那么这两个方块将交换位置:如果目标位置上没有方块,那么被拖动的方块将从原来的竖列中抽出,并从目标位置上掉落,直到不悬空.输入一个正整数n ,表示要求游戏通关的步数,输出方案(多组解时,按照 x 为第一关健字,y 为第二关健字,1优…