Codeforces Round #231 (Div.2)
来源:互联网 发布:帮站seo 编辑:程序博客网 时间:2024/06/07 01:46
500pt:
题目链接:http://codeforces.com/problemset/problem/394/A
分析:其实就是个a+b=c的式子,要使得通过移动最多一根火柴使等式成立,那么|a+b-c|=+-2或者=0
代码:
#include <vector>#include <list>#include <map>#include <set>#include <deque>#include <stack>#include <bitset>#include <algorithm>#include <functional>#include <numeric>#include <utility>#include <sstream>#include <iostream>#include <iomanip>#include <cstdio>#include <cmath>#include <cstdlib>#include <ctime>using namespace std;typedef long long ll;const int N=100010;int arr[N];ll n;string s;int main(){ while(cin>>s) { int a = 0; int b = 0; int c = 0; int i=0; while(s[i]!='+') { a++; i++; } i++; while(s[i]!='=') { b++; i++; } i++; while(i<s.length()) { c++; i++; } if(abs(a+b-c)==0||abs(a+b-c)==2) { if(abs(a+b-c)==0) cout<<s<<endl; else if(a+b-c==2) { if(a>b) a--; else b--; c++; for(int i=0;i<a;i++) cout<<"|"; cout<<"+"; for(int i=0;i<b;i++) cout<<"|"; cout<<"="; for(int i=0;i<c;i++) cout<<"|"; cout<<endl; } else { a++; c--; for(int i=0;i<a;i++) cout<<"|"; cout<<"+"; for(int i=0;i<b;i++) cout<<"|"; cout<<"="; for(int i=0;i<c;i++) cout<<"|"; cout<<endl; } } else cout<<"Impossible"<<endl; } return 0;}
1000pt:
题目链接:http://codeforces.com/problemset/problem/394/B
分析:这题出成B题略微有点难了,因为这个数的个数p很大,故不可能直接用int或者long long来算,故直接用string来算,那么最后一位只有1-9 9种可能性,而知道了后一位,是能够计算出前一位的,最后我们比较下首位是不是也满足x倍就行
代码:
#include <vector>#include <list>#include <map>#include <set>#include <deque>#include <stack>#include <bitset>#include <algorithm>#include <functional>#include <numeric>#include <utility>#include <sstream>#include <iostream>#include <iomanip>#include <cstdio>#include <cmath>#include <cstdlib>#include <ctime>using namespace std;typedef long long ll;const int N=100010;int arr[N];ll n;int p,x;string s;int main(){ while(cin>>p>>x) { string ret = ""; for(int i=1;i<10;i++) { string s(p,' '); char c = i+'0'; s[p-1]=c; int jinwei = 0; for(int j=p-1;j>0;j--) { int t = (s[j]-'0')*x+jinwei; int t1 = t%10; jinwei = t/10; char c1 = t1+'0'; s[j-1] = c1; } if((s[0]-'0')*x+jinwei==i&&s[0]!='0') { if(ret=="") ret = s; else { if(s<ret) ret = s; } } } if(ret=="") cout<<"Impossible"<<endl; else cout<<ret<<endl; } return 0;}
1500pt:
链接:http://codeforces.com/problemset/problem/394/C
分析:题目有点难看懂,其实就是有“00”,“01”,“10”,“11”这几个东西,让你随便排列,使得列中1的总数的最大值最小。使用贪心即可,先进行排序,先放“11”,在放“10”“01”,最后放“00”,偶数行从左到右放,技术行从右往左放,注意“10”和“01”其实等价,因为可以180度翻转。
代码:
#include <vector>#include <list>#include <map>#include <set>#include <deque>#include <stack>#include <bitset>#include <algorithm>#include <functional>#include <numeric>#include <utility>#include <sstream>#include <iostream>#include <iomanip>#include <cstdio>#include <cmath>#include <cstdlib>#include <ctime>using namespace std;typedef long long ll;const int N=1010;//int arr[N];string arr[N][N];int n,m;bool cmp1(string s1,string s2){return s1<s2;}bool cmp2(string s1,string s2){return s1>s2;}int main(){while(cin>>n>>m){vector<vector<string> > v(n,vector<string>(m,""));vector<string> v1;for(int i=0;i<n;i++){for(int j=0;j<m;j++){cin>>v[i][j];v1.push_back(v[i][j]);}}sort(v1.begin(),v1.end(),cmp2);int k = 0;for(int i=0;i<n;i++){if(i%2==0){for(int j=0;j<m;j++){v[i][j] = v1[k++];if(v[i][j]=="01"||v[i][j]=="10")v[i][j]="10";}}else{for(int j=m-1;j>=0;j--){v[i][j] = v1[k++];if(v[i][j]=="01"||v[i][j]=="10")v[i][j]="01";}}}for(int i=0;i<n;i++){for(int j=0;j<m;j++)cout<<v[i][j]<<" ";cout<<endl;}}return 0;}
0 0
- Codeforces Round #231 (Div. 2)
- Codeforces Round #231 (Div. 2)
- Codeforces Round #231 (Div. 2)
- Codeforces Round #231 (Div.2)
- Codeforces Round #231 (Div. 2)
- Codeforces Round #231 (Div. 2)---- Counting Sticks
- Codeforces Round #231 (Div. 2)A-D
- Codeforces Round #102 (Div. 2)
- Codeforces Round #103 (Div. 2)
- Codeforces Round #103 (Div. 2)
- Codeforces Round #104 (Div. 2)
- Codeforces Round #105 (Div. 2)
- Codeforces Round #105 (Div. 2)
- Codeforces Round #107 (Div. 2)
- Codeforces Round #108 (Div. 2)
- Codeforces Round #110 (Div. 2)
- Codeforces Round #122 (Div. 2)
- Codeforces Round #121 (Div. 2)
- python开发windows应用程序
- CC150 p2.3 C++
- C++:一个函数是member function还是只是part of the interface
- java练习题
- 北漂程序员的爱情故事
- Codeforces Round #231 (Div.2)
- Binary Tree Zigzag Level Order Traversal - LeetCode
- win7下面在虚拟机centos里面安装配置memcache(1)-安装篇
- 第5章 首页数据中加入用户并实现点赞功能
- hdu1856More is better基础并查集
- STM32学习笔记
- 89年女孩,工作在上海征婚
- 输入"aAZut",输出"bBAvu"
- WebForm 基础1