Educational Codeforces Round 2
来源:互联网 发布:c 数组最大长度 编辑:程序博客网 时间:2024/05/23 19:19
又是一场cf,依旧三题
第一题和第三题比较有意义。
A 考察对字符串,操作 ‘,’ ‘;’ 作为 分隔符....这题体现string 方便 ,可以直接拼接,以后多使用。
#include<bits/stdc++.h>using namespace std;vector<string> a,b;bool good(string st){ if(st.size()==0) return false; if(st.size()>1&&st[0]=='0') return false; for(int i=0;i<st.size();i++) if(st[i]>'9'||st[i]<'0') return false; return true;}void add_string(string st){ if(good(st)) a.push_back(st); else b.push_back(st);}int main(){ string str,temp=""; while(getline(cin,str)){ for(int i=0;i<str.size();i++) { if(str[i]==','||str[i]==';'){ add_string(temp); temp=""; } else temp+=str[i]; } add_string(temp); if(a.size()==0) cout<<"-"<<endl; else { cout<<"\""; for(int i=0;i<a.size();i++) { if(i) cout<<","; cout<<a[i]; } cout<<"\""<<endl; } if(b.size()==0) cout<<"-"<<endl; else { cout<<"\""; for(int i=0;i<b.size();i++) { if(i) cout<<","; cout<<b[i]; } cout<<"\""<<endl; } }}
B.
熟悉STL upper_bound ,(第一个大于) lower_bound(第一个大于等于)。
#include<bits/stdc++.h>using namespace std;int a[2*100010],b[2*100010];int main(){ int n,m; while(cin>>n>>m){ for(int i=0;i<n;i++) cin>>a[i]; for(int i=0;i<m;i++) cin>>b[i]; sort(a,a+n); for(int i=0;i<m-1;i++) { cout<<upper_bound(a,a+n,b[i])-a<<" "; } cout<<upper_bound(a,a+n,b[m-1])-a<<endl; }}
C.给一个字符串比如aabc 问最少修改字母次数,位置可以交换不算次数,输出字符序列最小的回文串,abba 用的是贪心...当时并没有写出来,以为要动规搜索,数据范围 不现实 后来想到贪心 ,借用vector<>保存一些中间值 很方便。
#include<bits/stdc++.h>using namespace std;int a[26];vector<int>v;int main(){ string s; while(cin>>s){ memset(a,0,sizeof(a)); int len=s.size(),cnt=0; for(int i=0;i<len;i++) a[s[i]-'a']++; for(int i=0;i<26;i++){ if(a[i]%2){ cnt++; v.push_back(i); } } if(cnt%2==0){ int t=cnt/2; for(int i=0;i<t;i++) a[v[i]]++; for(int i=t;i<cnt;i++) a[v[i]]--; } else{ int t=cnt/2+1; for(int i=0;i<t-1;i++) a[v[i]]++; for(int i=t;i<cnt;i++) a[v[i]]--; } int flag=-1; for(int i=0;i<26;i++){ if(a[i]%2) flag=i; for(int j=0;j<a[i]/2;j++) putchar('a'+i); } if(flag!=-1) putchar('a'+flag); for(int i=25;i>=0;i--){ for(int j=0;j<a[i]/2;j++) putchar('a'+i); } cout<<endl; }}
0 0
- Educational Codeforces Round 2
- Educational Codeforces Round 2
- Educational Codeforces Round 2
- Codeforces Educational Round 2 D题
- Educational Codeforces Round 2 A. Extract Numbers
- Educational Codeforces Round 2-C. Make Palindrome
- Educational Codeforces Round 1
- Educational Codeforces Round 3
- Codeforces Educational Round 3
- Codeforces Educational Round 5
- Codeforces Educational round 5
- Educational Codeforces Round 5
- Educational Codeforces Round 6
- Educational Codeforces Round 6
- Educational Codeforces Round 7
- Educational Codeforces Round 7
- Educational Codeforces Round 7
- Educational Codeforces Round 7
- 递归与尾递归
- IMAGE INPAINTING
- lds 脚本分析备忘
- 数据结构基础7.1:简单排序(冒泡、选择、插入)
- UML---实现图
- Educational Codeforces Round 2
- 应试教育的死穴,恰在于堵死了孩子“犯错”的空间
- week12---11月27日 JS内置对象(二)
- c-韩信点兵
- 3.0 Windows和Linux双系统安装(3)
- R
- C++关于符号&的各种含义:
- 简述C、C++程序编译的内存分配情况
- 【C#】初识C#之 .NET Framework3.5简介