牛客练习赛34 ABCD题解 2022-01-06 牛客网 传送门 A #include #include #include #include #include #include #include #define ll long long #define N 0x3f3f3f3f using namespace std; int b[100010]; int main() { int t; cin>>t; ; while(t--) { string s; cin>>s; int m=s[s.size()-1]-'0'; if(m%2!=0) { s[s.size()-1]=s[s.size()-1]-1; } cout< B #include #include #include #include #include #include #include #define ll long long #define N 0x3f3f3f3f using namespace std; int b[100010]; int main() { int n; cin>>n; ll h=0; for(int i=0; i>b[i]; h+=b[i]; } if(h%2==0) { int ans=0; for(int i=0; i C #include #include #include #include #include #include #define ll long long #define N 0x3f3f3f3f using namespace std; int l[100010]; int r[100010]; int len[100010]; int s[100010]; int main() { int n,m; cin>>n>>m; int ans=0; memset(len,0,sizeof(len)); memset(s,0,sizeof(s)); for(int i=1; i<=m; i++) { cin>>l[i]>>r[i]; len[l[i]]++,len[r[i]+1]--; } for(int i=1; i<=n; i++) { len[i]+=len[i-1]; if(len[i]==0) { ans++; } } for(int i=1; i<=n; i++) { if(len[i]>1) { len[i]=0; } len[i]+=len[i-1]; } int pos=1; for(int i=1; i<=m; i++) { if(len[r[i]]-len[l[i]-1]<=len[r[pos]]-len[l[pos]-1]) pos=i; } cout<【牛客练习赛34 ABCD题解】 树状数组 #include #include #include #include #include #include #define ll long long #define N 0x3f3f3f3f using namespace std; int n,m; struct ac { int l,r; }a[101000]; int c[101000]; int num[101000]; int lowbit(int w) { return w&(-w); } void updata(int x) { while(x<=n) { c[x]+=1; x+=lowbit(x); } } int getsum(int x) { int sum=0; while(x>0) { sum+=c[x]; x-=lowbit(x); } return sum; } int main() { cin>>n>>m; memset(num,0,sizeof(num)); memset(c,0,sizeof(c)); for(int i=1; i<=m; i++) { cin>>a[i].l>>a[i].r; num[a[i].l]++,num[a[i].r+1]--; } int ans=0; for(int i=1; i<=n; i++) { num[i]+=num[i-1]; if(num[i]==0) ans++; if(num[i]==1) updata(i); } int sum=1e9; int pos; for(int i=1; i<=m; i++) { if(getsum(a[i].r)-getsum(a[i].l-1)<=sum) { pos=i; sum=getsum(a[i].r)-getsum(a[i].l-1); } } sum+=ans; cout< D #include #include #include #include #include #include #define ll long long #define N 0x3f3f3f3f using namespace std; int a[1010]; int main() { int n,m; cin>>n>>m; for(int i=0; i>a[i]; } sort(a,a+n); int ans=0; for(int i=0; i 推荐阅读 巧影APP怎么制作隐身人? 荣耀|不再低调,6.5寸全速屏+22.5W快充+后置三摄,价格感人! 异地恋见面怎么省钱 异地恋见面如何省钱,异地恋见面如何省钱呢 天宫二号为什么坠毁了 中国第一个牺牲的宇航员是谁 12123在线支付不了怎么回事 12123在线支付没反应 美的空调格力和海尔哪个好家用,大部分是这里有问题 Win7系统不能正常关机的解决方法|Win7系统不能正常关机的解决教程 Python全栈系列[更新中]|Python零基础入门篇 - 52 - 文件操作的避坑指南 婚姻里丈夫和妻子相敬如宾好吗? 勇猛的近义词是什么 勇猛的近义词是啥 为什么氯化铝是共价化合物 移动来电提醒怎么设置 移动呼叫转移13800短信呼 Android工程化开发这门学科的看法 让你轻松搞定打印机废墨问题 3153废墨垫更换清零技巧分享 理怎么组词 汉字理怎么组词 戒烟必经三大阶段 戒烟关键期 边牧剪指甲正确方法 边牧指甲怎么剪 腊八节是几月几日的 腊八节是几月几号哪一天 魅族18参数 长城炮尿素冻了怎么办 长城炮的尿素冬天能冻住吗 算法刷题笔记|牛客网 NC20859 兔子的名字 算法刷题笔记|牛客网 字节跳动2019真题 聪明的编辑 正则表达式 牛客网|牛客练习赛25 背包|长方体的摆放