AtCoder Regular Contest 086
2017-12-10 22:26
411 查看
蒻苣的题解……
C Not so Diverse
题意:给定有n个数的数组A,求最少对其中的多少个元素重新赋值使数组中最多有k个不同的数?
1≤K≤N≤200000
1≤Ai≤N
分析:计数排序,O(logn+n) ~ O(n)
D - Non-decreasing
题意:给定有n个元素的数组(下标从1开始),可以对[1,n]的选定x,y,可以Ay+=Ax 任意次操作,求m次操作使数组为非递减数列(m在[0,2*n]内认为是正确的),接下来m行输出每次的x,y
分析:显然,spj
找到绝对值最大的元素。。 乱搞。。
记录绝对值最大的元素的位置,将此元素加到其他元素上,然后根据之前的绝对值最大的元素的符号进行操作。。
C Not so Diverse
题意:给定有n个数的数组A,求最少对其中的多少个元素重新赋值使数组中最多有k个不同的数?
1≤K≤N≤200000
1≤Ai≤N
分析:计数排序,O(logn+n) ~ O(n)
#include <bits/stdc++.h> using namespace std; const int INF=0x3f3f3f3f; #define mem(a,n) memset(a,n,sizeof(a)) typedef long long ll; const int N=2e5+5; int cnt ; bool cmp(int a,int b) { return a>b; } int main() { int n,k; while(~scanf("%d%d",&n,&k)) { int x; mem(cnt,0); for(int i=0;i<n;i++) { scanf("%d",&x); cnt[x]++; } sort(cnt,cnt+N,cmp); int ans=0; for(int i=k;cnt[i];i++) ans+=cnt[i]; printf("%d\n",ans); } return 0; }
D - Non-decreasing
题意:给定有n个元素的数组(下标从1开始),可以对[1,n]的选定x,y,可以Ay+=Ax 任意次操作,求m次操作使数组为非递减数列(m在[0,2*n]内认为是正确的),接下来m行输出每次的x,y
分析:显然,spj
找到绝对值最大的元素。。 乱搞。。
记录绝对值最大的元素的位置,将此元素加到其他元素上,然后根据之前的绝对值最大的元素的符号进行操作。。
#include <bits/stdc++.h> using namespace std; const int INF=0x3f3f3f3f; #define mem(a,n) memset(a,n,sizeof(a)) typedef long long ll; const int N=50+5; int main() { int n,pos,mx,tmp,flag; while(~scanf("%d",&n)) { pos=1,mx=0; for(int i=1;i<=n;i++) { scanf("%d",&tmp); if(abs(tmp)>mx) mx=abs(tmp),pos=i,flag=(tmp<0)?1:0; } printf("%d\n",2*n-2); for(int i=1;i<=n;i++) if(i!=pos) printf("%d %d\n",pos,i); if(flag) for(int i=n;i>1;i--) printf("%d %d\n",i,i-1); else for(int i=2;i<=n;i++) printf("%d %d\n",i-1,i); } return 0; }
相关文章推荐
- AtCoder Regular Contest 086 E - Smuggling Marbles(树形迭屁)
- AtCoder Regular Contest 080-C - 4-adjacent
- AtCoder Regular Contest 063题解
- AtCoder Regular Contest 069 F - Flags
- AtCoder Regular Contest 066 F Contest with Drinks Hard
- Atcoder Regular contest 085F NRE 线段树+DP
- AtCoder Regular Contest 066 E - Addition and Subtraction Hard
- AtCoder Regular Contest 071 F
- AtCoder Regular Contest 068 E - Snuke Line 离线+树状数组
- Atcoder Regular Contest 074 F Lotus Leaves
- Atcoder regular Contest 073(C - Sentou)
- AtCoder Regular Contest D - Remainder Reminder 取余问题
- 【AtCoder Regular Contest 092】C.2D Plane 2N Points(匈牙利算法/tuple+set 贪心)
- AtCoder Regular Contest 092 C - 2D Plane 2N Points 贪心 匈牙利算法模板
- Atcoder Regular Contest 092 A 的改编
- AtCoder Regular Contest 074F - Lotus Leaves
- AtCoder Regular Contest 076
- AtCoder Regular Contest 078D
- 【构造】AtCoder Regular Contest 079 D - Decrease (Contestant ver.)
- AtCoder Regular Contest 079