2017.10.4 QBXT 模拟赛】的更多相关文章

题目链接 T1 容斥原理,根据奇偶性进行加减 #include<iostream> #include<cstdio> using namespace std; typedef long long ll; typedef long double ld; #define rep(i,a,n) for(int i=a;i<=n;i++) ld eps=1e-; ll pp=; ll mo(ll a,ll pp){ && a<pp))a+=pp;return a…
题目链接 T1 模拟 #include <cstring> #include <cstdio> #define N 105000 int L,R; char s[N]; int main() { freopen("bracket.in","r",stdin); freopen("bracket.out","w",stdout); scanf("%s",s); int len=strl…
题目链接 T1 Sort 一下与原数组比较 ,若有两个数或者没有数发生位置交换 ,则输出YES ,否则输出NO #include <algorithm> #include <cctype> #include <cstdio> #define N 1005000 int n, cnt1, cnt2, sum; struct node { int num, pos; bool operator < (node a)const { if (num != a.num) r…
题目链接 T1 从小到大排序,用sum记录前缀和,然后枚举1~n个数 ,如果当前的前缀和 + 1小于a[i]的话 那么 sum + 1永远不可能拼出来 直接输出sum + 1 ,否则统计前缀和.最后如果仍没找到最小的解,输出所有数的和+1 #include <algorithm> #include <cstdio> #define N 100005 typedef long long LL; using namespace std; int n,a[N]; int main() {…
题目链接 T1 维护一个单调栈 #include <iostream> #include <cstdio> #define N 500000 #define rep(a,b,c) for(int a=b;a<=c;++a) #define Rep(a,b,c) for(int a=b;a>=c;--a) using namespace std; typedef long long LL; int n,top,stack[N],num[N]; LL ans,h[N],a[…
题目链接 T1 我们所要求得是(a*b)|x 也就是 使(a*b)的倍数小于x的个数之和 1<=x<=n 我们可以 找一个c使得 (a*b*c)<=x 由于我们所求的是一个三元有序对 即 (1,2,3) 与 (1,3,2) 是两种不同的方案数 所以 我们可以强制规定 a<b<c 最坏的情况是(a*a*a)==x 所以我们就可以确定a的枚举范围 就是n开三次根号 同理 b最大枚举到 sqrt(n/a) n/(a*b) 即为 c 由于c>b>a 所以 我们枚举的c是大…
题目链接 T1 枚举右端点,前缀和优化.对于当前点x,答案为 sum[x][r]-sum[x][l-1]-(sum[z][r]-sum[z][l-1]) 整理为 sum[x][r]-sum[z][r]-(sum[x][l-1]-sum[z][l-1]) 我们已知x和sum[x][r],对于z我们枚举,对于sum[x][l-1]-sum[z][l-1]我们需要一个最小的 用minv[x][y]表示sum[x]-sum[y]的最小值. #include <cstdio> #define N 100…
期望得分:100+40+100=240 实际得分:50+40+20=110 T1 start取了min没有用,w(゚Д゚)w    O(≧口≦)O T3 代码3个bug :数组开小了,一个细节没注意,手抖打错变量... 细节处理很重要啊!!!! 贪心,按结束时间排序 #include<cstdio> #include<iostream> #include<algorithm> using namespace std; #define N 100001 struct no…
题目链接 T1 按x值排序 遇到第二种牌插入 遇到第一种牌 查询<=y 的最小值 删除他 splay multiset cys大佬说 multiset就是不去重的set, #include <algorithm> #include <cstdio> #define N 100005 using namespace std; struct node { int x,y,opt; bool operator<(node a)const { if(opt!=a.opt&…
题目链接 T1 1e18 内的立方数有 1e6个 直接枚举可过 二分最优 考场用set  死慢.. #include <cstdio> int t; long long p; int main(int argc,char *argv[]) { freopen("cubic.in","r",stdin); freopen("cubic.out","w",stdout); scanf("%d",&a…