15
2019
08

noip2018-提高组 赛道修建

思路是二分答案,看当前最小最大长度能不能构成m条道路//2018-noip 道路修复 用到树 二分  #include<bits/stdc++.h>  using namespace std; const int N=50004; inline int read(){ char ch=getchar(); int res=0,f=1;
14
2019
08

2017提高组-列队

这个题目对一个初入noip的童鞋来说很烧脑呢,因为对线段树并不是很熟悉,所以在做这个题目之前需要先学习几个知识点:线段树权值线段树主席树,可持久化线段树可持久化数组经过对以上几个知识点,尤其是权值线段树和主席树的学习,才能理解如何动态建立多棵线段树,如何去找区间第K大的值。然后才能慢慢理解这道题的做法,很多巧妙的思想是自己无论如何也想不出来的。还是佩服这些烧脑的大仙们。。。#include<bits/stdc++.h> #define mid ((l+r)>
09
2019
08

2016NOIP提高组-愤怒的小鸟

题目链接:http://ybt.ssoier.cn:8088/problem_show.php?pid=18981)n<=18考虑状态压缩,把n个小猪能否被消灭用二进制的1,0来表示比如状态S=15 二进制是  000000000000001111  表示状态S下第1,2,3,4 只小猪可以被消灭dp[s]就表示状态S下消灭这些小猪最少需要的抛物线条数。2)因此我们枚举任意两只小猪构成的抛物线,用st[i][j] 表示i和j两只小猪构成的抛物线能够消灭小猪的状态比如st
31
2019
07

noip2014 day1t3 无线网络发射器选址

#include <iostream> #include <cstdio> #include <algorithm> using namespace std; int map[130][130],d, n,; long long sum[130][130],  ans, cnt; void init() {&n
29
2019
07

真题题解:2014年day1T2 联合权值

思路:1、联合的两个节点距离为二,所以必定有一个中转点。所以,我们可以枚举每一个中转点。(震惊!!!)2、假设每个中转点周围有两个点,权值分别为a、b,则联合权值为2ab=(a+b)^2-(a^2+b^2)。3、若有三个点,权值分别为a、b、c,则联合权值为2ab+2bc+2ac=(a+b+c)^2-(a^2+b^2+c^2)。4、综上,以某个节点为中转点的联合权值之和等于权值和的平方减去权值的平方和。(+1!!!!!)5、为了找到最大的联合权值,只需找到周围最大的两个权值max1,max2,相
24
2019
07

2011提高组-玛雅游戏

#inclue<bits/stdc++.h> #define ll long long #define N 10 //快速读  int read() {     int X=0,w=0; char ch=0;     while(!isdigit(ch)) {w|=ch==