02 2016 档案
摘要:这题什么情况。。。。。直接暴力加标记,复杂度o(n)啊。。。明显能过啊。。。明显是除了签到最简单的一道。。。。居然过这么少人。。。估计很多人看到merge和split以为是什么数据结构。。 #include<iostream> #include<cstdio> #include<cstring> #
阅读全文
摘要:题目真不难。。。 按高度从小到大加到线段树统计下次数求第k大就可以了,由于要字典序最小,所以每次把当前的尽量往前加,有k个人比它高,就两个位置,k+1和n-k,贪心取最靠前的就行了。 水题! #include<iostream> #include<cstdio> #include<cstring>
阅读全文
摘要:现在看这题居然直接秒了。。。去年看的时候还以为神题。。 设以第i项为结尾的lis前缀为f[i],以第j项为结尾的lis后缀为g[i],如果求出f[i]和g[j],然后枚举i,快速找到最大的满足a[j]>a[i]的g[j]就可以了。注意到如果将f[i]从后往前枚举,那么只要添加g[j]而不用删除操作了
阅读全文
摘要:这是去年合肥的另一道签到。。。题目其实很简单。。。仔细想想范围就能推出来了,第一二维存位置,但显然不够,所以开第三维,由于空间限制只能在和以及平方和二选一,由于平方和太大,所以只能存和。然后dp的值如果存为方差*n的话,显然还需要一维存平方和,但仔细看看式子,如果和以及平方和知道了,也就知道方差了,
阅读全文
摘要:补了下去年网络赛的题。。。很无语的感觉。。。。 这道签到去年做了4个小时,WA了十次。。。。后来还是队友过的,赛后由于网络赛打得太惨,也没敢去补题。。。 现在再来看这题,,,好简单。。。。 #include<iostream> #include<cstdio> #include<cstring> #
阅读全文
摘要:重写了一遍,从TLE进不到WA了。。。我实在找不出错误在哪了。。。先放着,等过段时间刷顺利指南的时候再来看这题。。 #include<bits/stdc++.h> #define REP(i,a,b) for(int i=a;i<=b;i++) #define MS0(a) memset(a,0,s
阅读全文
摘要:1500: [NOI2005]维修数列 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 10482 Solved: 3234[Submit][Status][Discuss] Description Input 输入的第1 行包含两个数N 和M(M ≤20
阅读全文
摘要:C. Famil Door and Brackets time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output As Famil Door
阅读全文
摘要:虽然刷了4章usaco,但跟没有刷一样,唯一有印象的就是判大素数模版,反着做背包的dp,反着做数位dp(逆向思维),对lis统计的判重,还有连通分量有了一点大概的印象,还有更加坚信了构造就是找规律,然后提高了一下代码能力,没了。 这个寒假最失败的一点就是把白天和夜晚倒过来过,白天睡觉,晚上刷题,这样
阅读全文
摘要:dp+线段树优化,水题 有几个要注意的地方,首先是注意到Pi可以提出来,所以不用double,降低进度误差;接着考虑提出来后会不会爆longlong,最大情况n*a[i]=n*r*r*h=1e5*1e4*1e4*1e4=1e17,显然不会,于是就可以愉快地用longlong了。。 被自己蠢哭了。。。
阅读全文
摘要:直接搞棵splay就行了,不要把光标弄到树中而是把光标当成询问或操作区间的端点标志这样会简单很多。 7点40分写到9点20分,包括调试总共花了一个小时40分钟,这次是自己独立调出来的,总算对splay有一定的了解。 设计操作:区间翻转,区间删除和插入,取第k个数。 这里的区间插入不是一个一个插,那样
阅读全文
摘要:先预处理编个顺序,然后用splay搞了。 涉及的操作:区间翻转,区间最小值查询。 //#include<bits/stdc++.h> #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<al
阅读全文
摘要:看清楚题意后居然一A了,这么长的代码一A对我来说还真是少见。 突然弄懂了数组版splay的内存池的原理,还是很简单的。。。 #include<bits/stdc++.h> #define REP(i,a,b) for(int i=a;i<=b;i++) #define MS0(a) memset(a
阅读全文
摘要:线段树的题目,拿来练第一道splay维护区间。 像这种基本的操作修改查询,我现在应该能在20分钟手写好splay再用10分钟调试,基本上不靠模版30分钟应该能出。 //#include<bits/stdc++.h> #include<iostream> #include<cstdio> #inclu
阅读全文
摘要:第一道splay,算是学会了最最基础的splay操作。 有一点要特别注意,就是一字型旋转的时候要先旋转y再旋x,这样复杂度降低很多。。。不要写成两次都旋转x。。。 总算是调试好了。 #include<bits/stdc++.h> #define REP(i,a,b) for(int i=a;i<=b
阅读全文
摘要:割点: int n; vector<int> G[maxn]; int pre[maxn],low[maxn]; int dfs_clock; bool iscut[maxn]; void init() { MS0(pre);MS0(iscut); dfs_clock=0; } int dfs(in
阅读全文
摘要:http://train.usaco.org/usacoprob2?a=7BaJNgFLmpD&S=buylow 求最长递减子序列以及方案数,注意重复不算,比如 3 2 3 2 1 ,这里取到最长递减子序列算一种(3 2 1)。 思路: 最长递减子序列的长度可以直接dp: dp[i]=max(dp[
阅读全文
摘要:struct Edge { int from,to,cap,flow; }; struct Dinic { int n,m,s,t; vector<Edge> edges; vector<int> G[maxn]; bool vis[maxn]; int d[maxn]; int cur[maxn]
阅读全文
摘要:终于过了这道题。。。但是这肯定不是正解,并没有办法证明它的正确性,但也足以过掉绝大多数数据了。 /* ID: huanrui ke PROG: camelot LANG: C++ */ #include<bits/stdc++.h> #define REP(i,a,b) for(int i=a;i<
阅读全文
摘要:Clarke and MST Accepts: 33 Submissions: 92 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) 问题描述 克拉克是一名人格分裂患者。某一天克拉克变成
阅读全文
摘要:支持多重边,按字典序输出。 #include<bits/stdc++.h> #define REP(i,a,b) for(int i=a;i<=b;i++) #define MS0(a) memset(a,0,sizeof(a)) using namespace std; typedef long
阅读全文
摘要:现在一天usaco能刷5~7道,现在刚到3.3,还有第三章8题,第四章11题,第五章14题,第六章17题,总共50题。如果一天5道,回学校前应该能刷完,但这样的训练强度根本不够!因此今天开始要增加训练强度!!! 首先是usaco,只放在早上刷,而且必须保持7道以上的题量。 接着下午一套codefor
阅读全文
摘要:网上找的模版实在是用不惯。。无奈自己写了一个。。。 下面是系数矩阵n*n,增广矩阵n*(n+1)。 最后结果为 z[i]= y[i]/x[i] ,即 x[i] * z[i] =y[i] .矩阵如下 x1 z1 y1 x1 z1 y1 x2 * z2 = y2 或 0 * z2 = 0 x3 z3 =
阅读全文
摘要:StringsobitsKim Schrijvers Consider an ordered set S of strings of N (1 <= N <= 31) bits. Bits, of course, are either 0 or 1. This set of strings is i
阅读全文
摘要:#include<bits/stdc++.h> #define REP(i,a,b) for(int i=a;i<=b;i++) #define MS0(a) memset(a,0,sizeof(a)) using namespace std; typedef long long ll; const
阅读全文
摘要:A题:水。 /* ID: huanrui ke PROG: AIM Tech Round (Div. 2) LANG: C++ */ #include<bits/stdc++.h> #define REP(i,a,b) for(int i=a;i<=b;i++) #define MS0(a) mem
阅读全文
摘要:道路修建 Large Time Limit: 5000ms Memory Limit: 131072KB 64-bit integer IO format: %lld Java class name: Main Prev Submit Status Statistics Discuss Next T
阅读全文
摘要:用可持久化线段树维护可持久化并查集。 调了一下午,改为按秩合并就过了。。。 没路径压缩的: #include<bits/stdc++.h> #define REP(i,a,b) for(int i=a;i<=b;i++) #define MS0(a) memset(a,0,sizeof(a)) us
阅读全文
摘要:poj2104 求区间第k大 可持久化线段树 #include<iostream> #include<cstdio> #include<cstring> #include<cstdlib> #include<algorithm> #define REP(i,a,b) for(int i=a;i<=b
阅读全文
摘要:#include<bits/stdc++.h> using namespace std; typedef long long ll; const int maxn=1000100; const int INF=1e9+10; /// 18位素数:154590409516822759 /// 19位素
阅读全文
摘要:A题:偶数直接加进去,奇数排序后去掉最小的即可。 /* ID: NotPassedCET4 PROG: #341 LANG: C++ */ #include<bits/stdc++.h> #define REP(i,a,b) for(int i=a;i<=b;i++) #define MS0(a)
阅读全文