codeforces 673c[补]
2017-03-11 13:45
190 查看
BNUZ比赛训练【补】
感觉这道题没写出来。。简直怀疑当天晚上智商是不是-100000。超级暴力大水题。题目:http://codeforces.com/problemset/problem/673/C
题目大意:
有n个数,可以构成n * (n - 1) / 2个区间,然后让你求1-n这每个数所占有的区间个数。
一个区间,被数量最大的数所占有,如果数量都是等大的话,那就被那个数的值最小的数占有
然后开始不知道哪里脑抽的开始敲。每次看每一位,每一位的前面和后面都扫一次,然后看那个值可以占有的区间。。然后敲完样例过完就死wa在3上了,然后。。心态崩溃,不想敲,赛后几分钟。。依旧照着这个思路想然后。。又想到了组合数学。。往前扫跟往后扫。。还要再排列组合一下。。我的天,越想脑子越炸。。
最终。。回去洗澡的时候又想。不是把区间枚举出来就好了。。然后每次统计的时候记录一下该区间每一个数的数量,然后再用一个mark标记一下当前数量的最小值是多少,然后每次让那个最小值的答案+1就好了。
我曹。我好菜啊。今天早上来到实验室。花了2分钟。。把代码全部重写了一次。1A。。。感觉我昨晚到底经历了什么。。。可能是被C题的排列组合带坏了。。orz
附上不知道为什么脑子抽完回来2分钟敲完的代码。。
/* @rescoues: codeforces 673C @date: 2017-3-10 @author: QuanQqqqq @algorithm: brute force */ #include <bits/stdc++.h> #define MAXN 5005 #define INF 0x3f3f3f using namespace std; int num[MAXN],total[MAXN],ans[MAXN],mark[MAXN]; int main(){ int n,mint,maxt; while(~scanf("%d",&n)){ memset(ans,0,sizeof(ans)); for(int i = 0;i < n;i++){ scanf("%d",&num[i]); } int maxt; for(int i = 0;i < n;i++){ memset(total,0,sizeof(total)); memset(mark,INF,sizeof(mark)); maxt = 0; for(int j = i;j < n;j++){ total[num[j]]++; mark[total[num[j]]] = min(mark[total[num[j]]],num[j]); maxt = max(total[num[j]],maxt); ans[mark[maxt]]++; } } for(int i = 1;i <= n;i++){ if(i != 1){ printf(" "); } printf("%d",ans[i]); } printf("\n"); } }
所以说。。我需要解释一下为什么我先掏出了线段树板后,两分钟又删掉了吗。。因为他是区间啊。区间找最大数量的最小值。。但是。再想想他在造区间的时候。时间复杂度已经O(n^2)了。。
于是。。脑子再次一抽的,删掉之后,敲了个前后缀数组。。。想在最短时间内计出最大数量的最小值。。但是有个毛病。就是中间的区间记录不了。。所以感觉脑子有毒。。
相关文章推荐
- CodeForces 673C Bear and Colors
- codeforces 673C
- codeforces 673C(思维)
- CodeForces 673C - Bear and Colors(模拟)
- CodeForces 673C
- Codeforces 673C Bear and Colors【暴力枚举】
- Codeforces 107A. Dorm Water Supply 搜图
- CodeForces 538C Tourist's Notes (简单题)
- codeforces_652C. Foe Pairs
- CodeForces 707B-Bakery
- 【CodeForces 632B】 Alice, Bob, Two Teams(暴力)
- CodeForces - 849B Tell Your World(简单题)
- [2018-3-16]BNUZ套题比赛div2 CodeForces 892B【补】
- Codeforces 116C. Party 树的深度
- 概率dp入门的简单题(hdu 4405,牡丹江,codeforces)
- CodeForces - 581B Luxurious Houses
- codeforces 480C C. Riding in a Lift(dp)
- CodeForces 125D【鸽巢原理】
- codeforces 851C Five Dimensional Points 鸽巢定理
- CodeForces 954A Diagonal Walking