AtCoder Regular Contest 068(缺d)
1.AtCoder Regular Contest 0652.AtCoder Regular Contest 066(缺d)3.AtCoder Regular Contest 067
4.AtCoder Regular Contest 068(缺d)
https://www.luogu.com.cn/problem/AT_arc068_a
题解:来回选取
#include <bits/stdc++.h>
#define int long long
using namespace std;
signed main(){
int x;
cin >> x;
cout << x/11*2+((x%11)>=1)+((x%11)>=7) << endl;
return 0;
}
https://www.luogu.com.cn/problem/AT_arc068_b
题解:假设每种牌都留一张,记录每种牌多余数量,发现多余数量和为奇数,则答案减一。
#include <bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int n;
int buc[N];
int main(){
cin >> n;
for(int i=1; i<=n; i++){
int x;
cin >> x;
buc[x]++;
}
int res=0,ans=0;
for(int i=1; i<=1e5; i++)
if(buc[i]){
ans++;
if(buc[i]%2==0) res++;
}
if(res%2) ans--;
cout << ans << endl;
return 0;
}
https://www.luogu.com.cn/problem/AT_arc068_c
题解:考虑枚举
考虑如下性质:
于是将区间按区间长度从小到大排序,并从小到大枚举
#include <bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int n,m;
struct Segment{
int l,r,len;
bool operator <(Segment t){
return len<t.len;
}
}seg[3*N];
struct BitTree{
int tr[N];
int lowbit(int x){
return x&-x;
}
void modify(int k,int x){
for(int i=k; i<=n; i+=lowbit(i)) tr[i]+=x;
}
int query(int k){
int res=0;
for(int i=k; i; i-=lowbit(i)) res+=tr[i];
return res;
}
}tree;
int main(){
cin >> m >> n;
for(int i=1; i<=m; i++){
int l,r;
cin >> l >> r;
seg[i]={l,r,r-l+1};
}
sort(seg+1,seg+m+1);
for(int d=1,j=1; d<=n; d++){
while(j<=m&&seg[j].len<d){
tree.modify(seg[j].l,1);
tree.modify(seg[j].r+1,-1);
j++;
}
int ans=m-j+1;
for(int i=d; i<=n; i+=d) ans+=tree.query(i);
cout << ans << endl;
}
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决