【比赛链接】click here~~

A. Lala Land and Apple Trees:

【题意】:

AMR住在拉拉土地。

拉拉土地是一个很漂亮的国家,位于坐标线。拉拉土地是与著名的苹果树越来越随处可见。



拉拉土地恰好n苹果树。树数i位于位置xi和具有人工智能的苹果就能够了增长。阿姆鲁希望从苹果树收集苹果。 AMR眼下维持在X =0的位置。在開始的时候,他能够选择是否去左边或右边。他会在他的方向继续下去。直到他遇见一棵苹果树,他之前没有參观。他会採取全部的苹果。然后扭转他的方向。继续走这个方向,直到他遇到了还有一个苹果树,他之前没有參观等。

在换句话说,阿姆鲁訪问每个新的苹果树反转时他的方向。 AMR将停止收集苹果时,有没有很多其它的树木。他也没有在他所面对的方向參观。

求他能够收集的最大数量?

代码:

  1. #ifndef _GLIBCXX_NO_ASSERT
  2. #include <cassert>
  3. #endif
  4.  
  5. #include <cctype>
  6. #include <cerrno>
  7. #include <cfloat>
  8. #include <ciso646>
  9. #include <climits>
  10. #include <clocale>
  11. #include <cmath>
  12. #include <csetjmp>
  13. #include <csignal>
  14. #include <cstdarg>
  15. #include <cstddef>
  16. #include <cstdio>
  17. #include <cstdlib>
  18. #include <cstring>
  19. #include <ctime>
  20.  
  21. #if __cplusplus >= 201103L
  22. #include <ccomplex>
  23. #include <cfenv>
  24. #include <cinttypes>
  25. #include <cstdalign>
  26. #include <cstdbool>
  27. #include <cstdint>
  28. #include <ctgmath>
  29. #include <cwchar>
  30. #include <cwctype>
  31. #endif
  32.  
  33. // C++
  34. #include <algorithm>
  35. #include <bitset>
  36. #include <complex>
  37. #include <deque>
  38. #include <exception>
  39. #include <fstream>
  40. #include <functional>
  41. #include <iomanip>
  42. #include <ios>
  43. #include <iosfwd>
  44. #include <iostream>
  45. #include <istream>
  46. #include <iterator>
  47. #include <limits>
  48. #include <list>
  49. #include <locale>
  50. #include <map>
  51. #include <memory>
  52. #include <new>
  53. #include <numeric>
  54. #include <ostream>
  55. #include <queue>
  56. #include <set>
  57. #include <sstream>
  58. #include <stack>
  59. #include <stdexcept>
  60. #include <streambuf>
  61. #include <string>
  62. #include <typeinfo>
  63. #include <utility>
  64. #include <valarray>
  65. #include <vector>
  66.  
  67. #if __cplusplus >= 201103L
  68. #include <array>
  69. #include <atomic>
  70. #include <chrono>
  71. #include <condition_variable>
  72. #include <forward_list>
  73. #include <future>
  74. #include <initializer_list>
  75. #include <mutex>
  76. #include <random>
  77. #include <ratio>
  78. #include <regex>
  79. #include <scoped_allocator>
  80. #include <system_error>
  81. #include <thread>
  82. #include <tuple>
  83. #include <typeindex>
  84. #include <type_traits>
  85. #include <unordered_map>
  86. #include <unordered_set>
  87. #endif
  88.  
  89. using namespace std;
  90. #define rep(i,j,k) for(int i=(int)j;i<(int)k;++i)
  91. #define per(i,j,k) for(int i=(int)j;i>(int)k;--i)
  92. #define lowbit(a) a&-a
  93. #define Max(a,b) a>b?a:b
  94. #define Min(a,b) a>b?b:a
  95. #define mem(a,b) memset(a,b,sizeof(a))
  96. typedef long long LL;
  97. typedef unsigned long long LLU;
  98. typedef double db;
  99. const int N=1e6+10;
  100. int i,j,n,m,t,ans,res,cnt,tmp;
  101.  
  102. char str[N];
  103. bool vis[N];
  104. int nx[N],ny[N];
  105.  
  106. int dir4[4][2]= {{1,0},{0,1},{-1,0},{0,-1}};
  107. int dir8[8][2]= {{1,0},{1,1},{0,1},{-1,1},{-1,0},{-1,-1},{0,-1},{1,-1}};
  108.  
  109. struct node
  110. {
  111. int x,y;
  112. };
  113.  
  114. vector< pair<int,int> >ll,rr;
  115.  
  116. bool cmp1(pair<int ,int >a,pair <int ,int >b)
  117. {
  118. return a.first>b.first;
  119. }
  120. bool cmp2(pair<int ,int >a,pair <int ,int >b)
  121. {
  122. return a.first<b.first;
  123. }
  124. int main()
  125. {
  126. while(cin>>n)
  127. {
  128. int x,a;
  129. rep(i,0,n)
  130. {
  131. cin>>x>>a;
  132. if(x<0) ll.push_back(make_pair(x,a));
  133. else rr.push_back(make_pair(x,a));
  134. }
  135. sort(ll.begin(),ll.end(),cmp1);
  136. sort(rr.begin(),rr.end(),cmp2);
  137. int res=0;
  138. int lenl=ll.size(),lenr=rr.size();
  139. if(lenl==lenr)
  140. {
  141. rep(i,0,lenl)
  142. {
  143. res+=ll[i].second;
  144. res+=rr[i].second;
  145. }
  146. }
  147. else if(lenl<lenr)
  148. {
  149. for(int i=0; i<lenl; ++i) res+=ll[i].second;
  150. for(int i=0; i<=lenl; ++i) res+=rr[i].second;
  151. }
  152. else
  153. {
  154. for(int i=0; i<=lenr; ++i) res+=ll[i].second;
  155. for(int i=0; i<lenr; ++i) res+=rr[i].second;
  156. }
  157. cout<<res<<endl;
  158. }
  159. return 0;
  160. }

B. Amr and The Large Array

【题意】:

阿姆鲁得到了一个大阵大小为n的。AMR不喜欢大型阵列,所以他打算把它缩小。

AMR并不关心。除非它的漂亮阵列中的不论什么东西。阵列的美被定义为次一些数发生在此数组的最大数目。他想选择这个阵列。使得它的漂亮将是一样的原始数组中最小的子段。



帮助阿姆鲁通过选择最小的子段。

代码:

  1. #ifndef _GLIBCXX_NO_ASSERT
  2. #include <cassert>
  3. #endif
  4.  
  5. #include <cctype>
  6. #include <cerrno>
  7. #include <cfloat>
  8. #include <ciso646>
  9. #include <climits>
  10. #include <clocale>
  11. #include <cmath>
  12. #include <csetjmp>
  13. #include <csignal>
  14. #include <cstdarg>
  15. #include <cstddef>
  16. #include <cstdio>
  17. #include <cstdlib>
  18. #include <cstring>
  19. #include <ctime>
  20.  
  21. #if __cplusplus >= 201103L
  22. #include <ccomplex>
  23. #include <cfenv>
  24. #include <cinttypes>
  25. #include <cstdalign>
  26. #include <cstdbool>
  27. #include <cstdint>
  28. #include <ctgmath>
  29. #include <cwchar>
  30. #include <cwctype>
  31. #endif
  32.  
  33. // C++
  34. #include <algorithm>
  35. #include <bitset>
  36. #include <complex>
  37. #include <deque>
  38. #include <exception>
  39. #include <fstream>
  40. #include <functional>
  41. #include <iomanip>
  42. #include <ios>
  43. #include <iosfwd>
  44. #include <iostream>
  45. #include <istream>
  46. #include <iterator>
  47. #include <limits>
  48. #include <list>
  49. #include <locale>
  50. #include <map>
  51. #include <memory>
  52. #include <new>
  53. #include <numeric>
  54. #include <ostream>
  55. #include <queue>
  56. #include <set>
  57. #include <sstream>
  58. #include <stack>
  59. #include <stdexcept>
  60. #include <streambuf>
  61. #include <string>
  62. #include <typeinfo>
  63. #include <utility>
  64. #include <valarray>
  65. #include <vector>
  66.  
  67. #if __cplusplus >= 201103L
  68. #include <array>
  69. #include <atomic>
  70. #include <chrono>
  71. #include <condition_variable>
  72. #include <forward_list>
  73. #include <future>
  74. #include <initializer_list>
  75. #include <mutex>
  76. #include <random>
  77. #include <ratio>
  78. #include <regex>
  79. #include <scoped_allocator>
  80. #include <system_error>
  81. #include <thread>
  82. #include <tuple>
  83. #include <typeindex>
  84. #include <type_traits>
  85. #include <unordered_map>
  86. #include <unordered_set>
  87. #endif
  88.  
  89. using namespace std;
  90. #define rep(i,j,k) for(int i=(int)j;i<(int)k;++i)
  91. #define per(i,j,k) for(int i=(int)j;i>(int)k;--i)
  92. #define lowbit(a) a&-a
  93. #define Max(a,b) a>b?
  94.  
  95. a:b
  96. #define Min(a,b) a>b?b:a
  97. #define mem(a,b) memset(a,b,sizeof(a))
  98. typedef long long LL;
  99. typedef unsigned long long LLU;
  100. typedef double db;
  101. const int N=1e6+10;
  102. int i,j,n,m,t,ans,res,cnt,tmp;
  103.  
  104. char str[N];
  105. bool vis[N];
  106. int nx[N],ny[N];
  107.  
  108. int dir4[4][2]= {{1,0},{0,1},{-1,0},{0,-1}};
  109. int dir8[8][2]= {{1,0},{1,1},{0,1},{-1,1},{-1,0},{-1,-1},{0,-1},{1,-1}};
  110.  
  111. struct node
  112. {
  113. int x,y;
  114. };
  115.  
  116. bool cmp1(node a,node b)
  117. {
  118. return a.x<b.x;
  119. }
  120. pair<int,int> num [N];
  121. int c[N];
  122. int pre[N];
  123. int last[N];
  124. int maxxa=-1;
  125. int maxxb=-1;
  126.  
  127. int main()
  128. {
  129. cin>>n;
  130. rep(i,0,n)
  131. {
  132. cin>>j;
  133. ++c[j];
  134. maxxa=max(maxxa,c[j]);///找出那个数出现次数最多
  135. maxxb=max(maxxb,j);///那个数最大
  136. if(c[j]==1)
  137. {
  138. pre[j]=last[j]=i;/// pre[1]=last[1]=1
  139. }
  140. else
  141. {
  142. pre[j]=min(pre[j],i);
  143. last[j]=max(last[j],i);
  144. }
  145. // cout<<"pre[j]="<<j<<" "<<pre[j]<<endl;
  146. // cout<<"last[j]="<<j<<" "<<last[j]<<endl;
  147. }
  148. //cout<<maxxa<<endl;///3
  149. //cout<<maxxb<<endl;///2
  150. int fx=-1,fy=N;
  151. for(int i=0; i<=maxxb; ++i)
  152. {
  153. if(c[i]==maxxa)
  154. {
  155. if(last[i]-pre[i]<fy)
  156. {
  157. fx=pre[i];
  158. fy=last[i]-pre[i];
  159. }
  160. }
  161. }
  162. cout<<fx+1<<" "<<fx+fy+1;
  163. return 0;
  164. }

C. Amr and Chemistry

【题意】

AMR热爱化学,以及专门做实验。他正在准备一个新的有趣的实验。

AMR有n个不同类型的化学品。每一化学i具有艾升的起始体积。对于该实验,阿姆鲁具有混合全部的化学品一起。但全部的化学品卷必须等于第一位。所以,他的任务就是使全部的化学品数量相等。



要做到这一点。阿姆鲁能够做两种不同的操作。

选择一些化学i和一倍当前音量。使新卷将2AI

选择一些化学i和除以2(整数除法)的体积。使新卷会

如果每一个化学包括在无限量的容器。如今阿姆鲁想知道是什么操作,使全部化学品卷等于所需的最低人数?

代码:

  1. #ifndef _GLIBCXX_NO_ASSERT
  2. #include <cassert>
  3. #endif
  4.  
  5. #include <cctype>
  6. #include <cerrno>
  7. #include <cfloat>
  8. #include <ciso646>
  9. #include <climits>
  10. #include <clocale>
  11. #include <cmath>
  12. #include <csetjmp>
  13. #include <csignal>
  14. #include <cstdarg>
  15. #include <cstddef>
  16. #include <cstdio>
  17. #include <cstdlib>
  18. #include <cstring>
  19. #include <ctime>
  20.  
  21. #if __cplusplus >= 201103L
  22. #include <ccomplex>
  23. #include <cfenv>
  24. #include <cinttypes>
  25. #include <cstdalign>
  26. #include <cstdbool>
  27. #include <cstdint>
  28. #include <ctgmath>
  29. #include <cwchar>
  30. #include <cwctype>
  31. #endif
  32.  
  33. // C++
  34. #include <algorithm>
  35. #include <bitset>
  36. #include <complex>
  37. #include <deque>
  38. #include <exception>
  39. #include <fstream>
  40. #include <functional>
  41. #include <iomanip>
  42. #include <ios>
  43. #include <iosfwd>
  44. #include <iostream>
  45. #include <istream>
  46. #include <iterator>
  47. #include <limits>
  48. #include <list>
  49. #include <locale>
  50. #include <map>
  51. #include <memory>
  52. #include <new>
  53. #include <numeric>
  54. #include <ostream>
  55. #include <queue>
  56. #include <set>
  57. #include <sstream>
  58. #include <stack>
  59. #include <stdexcept>
  60. #include <streambuf>
  61. #include <string>
  62. #include <typeinfo>
  63. #include <utility>
  64. #include <valarray>
  65. #include <vector>
  66.  
  67. #if __cplusplus >= 201103L
  68. #include <array>
  69. #include <atomic>
  70. #include <chrono>
  71. #include <condition_variable>
  72. #include <forward_list>
  73. #include <future>
  74. #include <initializer_list>
  75. #include <mutex>
  76. #include <random>
  77. #include <ratio>
  78. #include <regex>
  79. #include <scoped_allocator>
  80. #include <system_error>
  81. #include <thread>
  82. #include <tuple>
  83. #include <typeindex>
  84. #include <type_traits>
  85. #include <unordered_map>
  86. #include <unordered_set>
  87. #endif
  88.  
  89. using namespace std;
  90. #define rep(i,j,k) for(int i=(int)j;i<(int)k;++i)
  91. #define per(i,j,k) for(int i=(int)j;i>(int)k;--i)
  92. #define lowbit(a) a&-a
  93. #define Max(a,b) a>b?a:b
  94. #define Min(a,b) a>b?
  95.  
  96. b:a
  97. #define mem(a,b) memset(a,b,sizeof(a))
  98. #define debug(x) cerr<<#x<<"="<<x<<endl;
  99. #define FF first
  100. #define SS second
  101. #define PB push_back
  102. #define MP make_pair
  103. typedef long long ll;
  104. const ll INF=1<<28;
  105. const ll LINF=1ll<<61;
  106. //My own input/output stream
  107. #define geti(x) x=getnum()
  108. #define getii(x,y) geti(x),geti(y)
  109. #define getiii(x,y,z) getii(x,y),geti(z)
  110. #define puti(x) putnum(x),putsp()
  111. #define putii(x,y) puti(x),putnum(y),putsp()
  112. #define putiii(x,y,z) putii(x,y),putnum(z),putsp()
  113. #define putsi(x) putnum(x),putendl()
  114. #define putsii(x,y) puti(x),putnum(y),putendl()
  115. #define putsiii(x,y,z) putii(x,y),putnum(z),putendl()
  116. inline ll getnum()
  117. {
  118. register ll r=0;
  119. register bool ng=0;
  120. register char c;
  121. c=getchar();
  122. while(c!='-'&&(c<'0'||c>'9'))c=getchar();
  123. if(c=='-')ng=1,c=getchar();
  124. while(c!=' '&&c!='\n')r=r*10+c-'0',c=getchar();
  125. if(ng)r=-r;
  126. return r;
  127. }
  128. template <class T> inline void putnum(T x)
  129. {
  130. if(x<0)putchar('-'),x=-x;
  131. register short a[20]= {},sz=0;
  132. while(x>0)a[sz++]=x%10,x/=10;
  133. if(sz==0)putchar('0');
  134. for(int i=sz-1; i>=0; i--)putchar('0'+a[i]);
  135. }
  136. inline void putsp()
  137. {
  138. putchar(' ');
  139. }
  140. inline void putendl()
  141. {
  142. putchar('\n');
  143. }
  144. inline char mygetchar()
  145. {
  146. register char c=getchar();
  147. while(c==' '||c=='\n')c=getchar();
  148. return c;
  149. }
  150. typedef long long LL;
  151. typedef unsigned long long LLU;
  152. typedef double db;
  153. const int N=1e6+10;
  154. int i,j,n,m,t,ans,res,cnt,tmp;
  155.  
  156. char str[N];
  157. bool vis[N];
  158. int nx[N],ny[N];
  159.  
  160. int dir4[4][2]= {{1,0},{0,1},{-1,0},{0,-1}};
  161. int dir8[8][2]= {{1,0},{1,1},{0,1},{-1,1},{-1,0},{-1,-1},{0,-1},{1,-1}};
  162.  
  163. struct node
  164. {
  165. int x,y;
  166. };
  167.  
  168. bool cmp1(node a,node b)
  169. {
  170. return a.x<b.x;
  171. }
  172. pair<int,int> num [N];
  173. int c[N];
  174. int pre[N];
  175. int last[N];
  176. int maxxa=-1;
  177. int maxxb=-1;
  178. int a[N],b[N];
  179. vector <bool>v[N],vans;
  180. int main()
  181. {
  182. scanf("%d",&n);
  183. int kk=20;
  184. for(int i=1; i<=n; i++)
  185. {
  186. scanf("%d",&a[i]);
  187. int j;
  188. for(j=1; j<20; j++)
  189. {
  190. if((a[i]>>(j-1))>0&&(a[i]>>j)==0)
  191. {
  192. break;
  193. }
  194. }
  195. for(int k=j-1; k>=0; k--)
  196. {
  197. v[i].PB((a[i]>>k)&1);
  198. }
  199. kk=min(kk,int(v[i].size()));
  200. }
  201. for(int i=0; i<kk; i++)
  202. {
  203. bool ok=1;
  204. for(int j=1; j<n; j++)
  205. {
  206. if(v[j][i]!=v[j+1][i])
  207. {
  208. ok=0;
  209. break;
  210. }
  211. }
  212. if(ok)vans.PB(v[1][i]);
  213. else break;
  214. }
  215. for(int i=1; i<=n; i++)
  216. {
  217. int j=vans.size();
  218. while(j<v[i].size()&&v[i][j]==0)
  219. {
  220. b[i]++;
  221. j++;
  222. }
  223. }
  224. int ans=99999999999;
  225. for(int i=0; i<30-int(vans.size()); i++)
  226. {
  227. int tans=0;
  228. for(int j=1; j<=n; j++)
  229. {
  230. tans+=int(v[j].size())-int(vans.size()+min(i,b[j]))+max(0,i-b[j]);
  231. }
  232. ans=min(ans,tans);
  233. }
  234. printf("%d\n",ans);
  235. return 0;
  236. }

Codeforces Round #312 (Div. 2) ABC题解的更多相关文章

  1. # Codeforces Round #529(Div.3)个人题解

    Codeforces Round #529(Div.3)个人题解 前言: 闲来无事补了前天的cf,想着最近刷题有点点怠惰,就直接一场cf一场cf的刷算了,以后的题解也都会以每场的形式写出来 A. Re ...

  2. Codeforces Round #557 (Div. 1) 简要题解

    Codeforces Round #557 (Div. 1) 简要题解 codeforces A. Hide and Seek 枚举起始位置\(a\),如果\(a\)未在序列中出现,则对答案有\(2\ ...

  3. Codeforces Round #540 (Div. 3) 部分题解

    Codeforces Round #540 (Div. 3) 题目链接:https://codeforces.com/contest/1118 题目太多啦,解释题意都花很多时间...还有事情要做,就选 ...

  4. Codeforces Round #538 (Div. 2) (A-E题解)

    Codeforces Round #538 (Div. 2) 题目链接:https://codeforces.com/contest/1114 A. Got Any Grapes? 题意: 有三个人, ...

  5. Codeforces Round #531 (Div. 3) ABCDEF题解

    Codeforces Round #531 (Div. 3) 题目总链接:https://codeforces.com/contest/1102 A. Integer Sequence Dividin ...

  6. Codeforces Round #527 (Div. 3) ABCDEF题解

    Codeforces Round #527 (Div. 3) 题解 题目总链接:https://codeforces.com/contest/1092 A. Uniform String 题意: 输入 ...

  7. Codeforces Round #499 (Div. 1)部分题解(B,C,D)

    Codeforces Round #499 (Div. 1) 这场本来想和同学一起打\(\rm virtual\ contest\)的,结果有事耽搁了,之后又陆陆续续写了些,就综合起来发一篇题解. B ...

  8. Codeforces Round #366 (Div. 2) ABC

    Codeforces Round #366 (Div. 2) A I hate that I love that I hate it水题 #I hate that I love that I hate ...

  9. Codeforces Round #545 (Div. 1) 简要题解

    这里没有翻译 Codeforces Round #545 (Div. 1) T1 对于每行每列分别离散化,求出大于这个位置的数字的个数即可. # include <bits/stdc++.h&g ...

随机推荐

  1. HDOJ-1017 A Mathematical Curiosity(淼)

    http://acm.hdu.edu.cn/showproblem.php?pid=1017 # include <stdio.h> int find(int n, int m) { in ...

  2. vi常用命令笔记

    1.Vi 删除全部内容,删除某行到结尾,删除某段内容 (1)转到文件指定行 nG (2)删除所有内容(先用G转到文件尾) ,使用: $G :1,.d (3)删除第9行到第200行的内容(先用200G转 ...

  3. Java 获取Linux 的IP地址

    import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import ...

  4. python之路-SQLAlchemy

    SQLAchemy SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作,简言之便是:将对象转换成SQL,然后使用数据API执行S ...

  5. SSR分子标记

    参考: SSR标记 分子标记开发与筛选之SSR SSR 分子标记开发策略及评价 SSR分子标记在牡丹亲缘关系研究中的应用与研究进展 SSR(Simple Sequence Repeats)标记是近年来 ...

  6. jquery第二期:三个例子带你走进jquery

    jquery是完全支持css的,我们举个例子来看看使用jquery的方便之处,这功劳是属于选择器的: 例1: <!DOCTYPE html PUBLIC "-//W3C//DTD HT ...

  7. RehHat enterprise 5.4 安装git

    今天想来研究一下git,就自己安装一个试试,没想到遇到各种问题.经过各种百度和google,终于都解决了,现在来总结一下: 1.安装完redhat 5.4,安装gcc编译器的问题:这个gcc编译器需要 ...

  8. ZendStudio快捷键 注释的快捷键

    注:本文省略“通用快捷键”描述,诸如:ctrl+N=新建,ctrl+O=打开,ctrl+C=复制,ctrl+V,ctrl+X……等等几乎所有软件都通用的一组快捷键,而着重介绍zde独有的快捷键,了解并 ...

  9. Mock.js:前后端分离开发工具

    概述 Mock.js实现的功能 基于 数据模板 生成数据 基于 HTML模板 生成数据 拦截并模拟 Ajax请求 用法 浏览器: <!-- (必选)加载 Mock --> <scri ...

  10. NET基础课--配置文件1

    在.NET Framework中,配置几乎是无处不在的.配置是控制应用程序行为的一些设置.下面我们就来看看到底有几个配置文件,而他们又分别代表了什么? 1. machine.config 这个文件只有 ...