How abc_c ?

题目总版

```cpp #include<iostream> #include<set> using namespace std; int n,k; long long ans; set<int> s; int main(){ cin>>n>>k; ans=(1ll+k)*k/2; for(int i=1;i<=n;i++){ int t; cin>>t; if(t>=1 and t<=k and s.find(t)==s.end()){ ans-=t; s.insert(t); } } cout<<ans<<endl; return 0; } ```
by HappyCode @ 2024-03-23 21:44:59


?为什么要高精度?直接把出现的每个数加起来拿 $\frac{k(k + 1)}{2}$ 减一下不就行了吗?$k$ 反正只有 $1e9$
by forgotmyhandle @ 2024-03-23 21:45:46


@[XYzero](/user/917025) why 高精度? ```cpp #include<bits/stdc++.h> using namespace std; #define ll long long const int N=2e5+5; ll n,k,ans; int a[N]; set<int>s; int main(){ cin.tie(0)->sync_with_stdio(0); cin>>n>>k; for(int i=1;i<=n;i++){ cin>>a[i]; s.insert(a[i]); } ans=k*(k+1)/2; for(auto it=s.begin();it!=s.end();it++){ if(*it<=k){ ans-=*it; } } cout<<ans; return 0; } ```
by Present_Coming_Time @ 2024-03-23 21:48:39


我蒟了,感谢
by XYzero @ 2024-03-23 21:49:17


|