链接

毒瘤场.....

A题:,真码农题,直接干爆,枚举,注意越界问题,wa37的看这组数据1 10 1 5 2 2,应该是no

  1. //#pragma comment(linker, "/stack:200000000")
  2. //#pragma GCC optimize("Ofast,no-stack-protector")
  3. //#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
  4. //#pragma GCC optimize("unroll-loops")
  5. #include<bits/stdc++.h>
  6. #define fi first
  7. #define se second
  8. #define mp make_pair
  9. #define pb push_back
  10. #define pi acos(-1.0)
  11. #define ll long long
  12. #define mod 1000000007
  13. #define C 0.5772156649
  14. #define ls l,m,rt<<1
  15. #define rs m+1,r,rt<<1|1
  16. #define pil pair<int,ll>
  17. #define pii pair<int,int>
  18. #define ull unsigned long long
  19. #define base 1000000000000000000
  20. #define fio ios::sync_with_stdio(false);cin.tie(0)
  21.  
  22. using namespace std;
  23.  
  24. const double g=10.0,eps=1e-;
  25. const int N=+,maxn=+,inf=0x3f3f3f3f,INF=0x3f3f3f3f3f3f3f3f;
  26.  
  27. int main()
  28. {
  29. int n,m,i,j,a,b;
  30. scanf("%d%d%d%d%d%d",&n,&m,&i,&j,&a,&b);
  31. int ans1=-,ans2=-,ans3=-,ans4=-;
  32. if(abs(i-)%a==&&abs(j-)%b==&&abs(i-)/a%==abs(j-)/b%)
  33. {
  34. if(abs(j-)/b!=&&(<=i-a||i+a<=n)&&abs(i-)/a==)ans1=max(abs(i-)/a,abs(j-)/b);
  35. else if(abs(i-)/a!=&&(<=j-b||j+b<=m)&&abs(j-)/b!=)ans1=max(abs(i-)/a,abs(j-)/b);
  36. else if(abs(j-)/b!=&&(<=i-a||i+a<=n)&&abs(i-)/a!=&&(<=j-b||j+b<=m))ans1=max(abs(i-)/a,abs(j-)/b);
  37. else if(abs(i-)/a==&&abs(j-)/b==)ans1=max(abs(i-)/a,abs(j-)/b);
  38. }
  39. if(abs(i-)%a==&&abs(j-m)%b==&&abs(i-)/a%==abs(j-m)/b%)
  40. {
  41. if(abs(j-m)/b!=&&(<=i-a||i+a<=n)&&abs(i-)/a==)ans2=max(abs(i-)/a,abs(j-m)/b);
  42. else if(abs(i-)/a!=&&(<=j-b||j+b<=m)&&abs(j-m)/b!=)ans2=max(abs(i-)/a,abs(j-m)/b);
  43. else if(abs(j-m)/b!=&&(<=i-a||i+a<=n)&&abs(i-)/a!=&&(<=j-b||j+b<=m))ans2=max(abs(i-)/a,abs(j-m)/b);
  44. else if(abs(i-)/a==&&abs(j-m)/b==)ans2=max(abs(i-)/a,abs(j-m)/b);
  45. }
  46. if(abs(i-n)%a==&&abs(j-)%b==&&abs(i-n)/a%==abs(j-)/b%)
  47. {
  48. if(abs(j-)/b!=&&(<=i-a||i+a<=n)&&abs(i-n)/a==)ans3=max(abs(i-n)/a,abs(j-)/b);
  49. else if(abs(i-n)/a!=&&(<=j-b||j+b<=m)&&abs(j-)/b!=)ans3=max(abs(i-n)/a,abs(j-)/b);
  50. else if(abs(j-)/b!=&&(<=i-a||i+a<=n)&&abs(i-n)/a!=&&(<=j-b||j+b<=m))ans3=max(abs(i-n)/a,abs(j-)/b);
  51. else if(abs(i-n)/a==&&abs(j-)/b==)ans3=max(abs(i-n)/a,abs(j-)/b);
  52. }
  53. if(abs(i-n)%a==&&abs(j-m)%b==&&abs(i-n)/a%==abs(j-m)/b%)
  54. {
  55. if(abs(j-m)/b!=&&(<=i-a||i+a<=n)&&abs(i-n)/a==)ans4=max(abs(i-n)/a,abs(j-m)/b);
  56. else if(abs(i-n)/a!=&&(<=j-b||j+b<=m)&&abs(j-m)/b!=)ans4=max(abs(i-n)/a,abs(j-m)/b);
  57. else if(abs(j-m)/b!=&&(<=i-a||i+a<=n)&&abs(i-n)/a!=&&(<=j-b||j+b<=m))ans4=max(abs(i-)/a,abs(j-m)/b);
  58. else if(abs(i-n)/a==&&abs(j-m)/b==)ans4=max(abs(i-n)/a,abs(j-m)/b);
  59. }
  60. // printf("%d %d\n",abs(i-n)/a%2,abs(j-m)/b%2);
  61. if(ans1!=-||ans2!=-||ans3!=-||ans4!=-)
  62. {
  63. int ans=;
  64. if(ans1!=-)ans=min(ans,ans1);
  65. if(ans2!=-)ans=min(ans,ans2);
  66. if(ans3!=-)ans=min(ans,ans3);
  67. if(ans4!=-)ans=min(ans,ans4);
  68. printf("%d\n",ans);
  69. }
  70. else puts("Poor Inna and pony!");
  71. return ;
  72. }
  73. /********************
  74. 3 5 2 2 1 3
  75. ********************/

A

B题:日常贪心不会写,xjb写成了dp,还写搓了

题意:找相邻的合成9,要求组出最多的9的方案数;

直接贪心的扫到最远处,类似于72727这样的,然后乘到答案上

  1. //#pragma comment(linker, "/stack:200000000")
  2. //#pragma GCC optimize("Ofast,no-stack-protector")
  3. //#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
  4. //#pragma GCC optimize("unroll-loops")
  5. #include<bits/stdc++.h>
  6. #define fi first
  7. #define se second
  8. #define mp make_pair
  9. #define pb push_back
  10. #define pi acos(-1.0)
  11. #define ll long long
  12. #define mod 1000000007
  13. #define C 0.5772156649
  14. #define ls l,m,rt<<1
  15. #define rs m+1,r,rt<<1|1
  16. #define pil pair<int,ll>
  17. #define pii pair<int,int>
  18. #define ull unsigned long long
  19. #define base 1000000000000000000
  20. #define fio ios::sync_with_stdio(false);cin.tie(0)
  21.  
  22. using namespace std;
  23.  
  24. const double g=10.0,eps=1e-;
  25. const int N=+,maxn=+,inf=0x3f3f3f3f,INF=0x3f3f3f3f3f3f3f3f;
  26.  
  27. char s[N];
  28. int main()
  29. {
  30. scanf("%s",s+);
  31. int sz=strlen(s+);
  32. ll ans=,p=;
  33. for(int i=;i<=sz;i++)
  34. {
  35. if(s[i]-''+s[i-]-''==)p++;
  36. else
  37. {
  38. // printf("%d\n",p);
  39. if(p!=&&p%==)ans*=(p+)/;
  40. p=;
  41. }
  42.  
  43. }
  44. // printf("%d\n",p);
  45. if(p!=&&p%==)ans*=(p+)/;
  46. printf("%lld\n",ans);
  47. return ;
  48. }
  49. /********************
  50.  
  51. ********************/

B

C:有nm的矩阵,找最长的dima,转化成dag上的dp,从d开始dp,然后找能走的最远距离除4就是答案,注意这题要判环,用一个vis标记,-1表示当前正在访问的这一条路,1表示访问过了,0表示没有访问过,如果访问到了一个正在访问的地方,那么就是有环

  1. //#pragma comment(linker, "/stack:200000000")
  2. //#pragma GCC optimize("Ofast,no-stack-protector")
  3. //#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
  4. //#pragma GCC optimize("unroll-loops")
  5. #include<bits/stdc++.h>
  6. #define fi first
  7. #define se second
  8. #define mp make_pair
  9. #define pb push_back
  10. #define pi acos(-1.0)
  11. #define ll long long
  12. #define mod 1000000007
  13. #define C 0.5772156649
  14. #define ls l,m,rt<<1
  15. #define rs m+1,r,rt<<1|1
  16. #define pil pair<int,ll>
  17. #define pii pair<int,int>
  18. #define ull unsigned long long
  19. #define base 1000000000000000000
  20. #define fio ios::sync_with_stdio(false);cin.tie(0)
  21.  
  22. using namespace std;
  23.  
  24. const double g=10.0,eps=1e-;
  25. const int N=+,maxn=+,inf=0x3f3f3f3f,INF=0x3f3f3f3f3f3f3f3f;
  26.  
  27. char s[N][N];
  28. int dp[N*N];
  29. int n,m;
  30. int vis[N*N];
  31. vector<int>v[N*N];
  32. int dfs(int u)
  33. {
  34. // printf("%d\n",u);
  35. if(dp[u]!=-)return dp[u];
  36. dp[u]=;vis[u]=-;
  37. for(int i=;i<v[u].size();i++)
  38. {
  39. int x=v[u][i];
  40. if(vis[x]<)
  41. {
  42. puts("Poor Inna!");
  43. exit();
  44. }
  45. dp[u]=max(dp[u],dfs(x)+);
  46. }
  47. vis[u]=;
  48. return dp[u];
  49. }
  50. int main()
  51. {
  52. scanf("%d%d",&n,&m);
  53. for(int i=;i<n;i++)
  54. scanf("%s",s[i]);
  55. for(int i=;i<n;i++)
  56. {
  57. for(int j=;j<m;j++)
  58. {
  59. if(s[i][j]=='D')
  60. {
  61. if(i+<n&&s[i+][j]=='I')v[i*m+j].pb((i+)*m+j);
  62. if(i->=&&s[i-][j]=='I')v[i*m+j].pb((i-)*m+j);
  63. if(j+<m&&s[i][j+]=='I')v[i*m+j].pb(i*m+j+);
  64. if(j->=&&s[i][j-]=='I')v[i*m+j].pb(i*m+j-);
  65. }
  66. else if(s[i][j]=='I')
  67. {
  68. if(i+<n&&s[i+][j]=='M')v[i*m+j].pb((i+)*m+j);
  69. if(i->=&&s[i-][j]=='M')v[i*m+j].pb((i-)*m+j);
  70. if(j+<m&&s[i][j+]=='M')v[i*m+j].pb(i*m+j+);
  71. if(j->=&&s[i][j-]=='M')v[i*m+j].pb(i*m+j-);
  72. }
  73. else if(s[i][j]=='M')
  74. {
  75. if(i+<n&&s[i+][j]=='A')v[i*m+j].pb((i+)*m+j);
  76. if(i->=&&s[i-][j]=='A')v[i*m+j].pb((i-)*m+j);
  77. if(j+<m&&s[i][j+]=='A')v[i*m+j].pb(i*m+j+);
  78. if(j->=&&s[i][j-]=='A')v[i*m+j].pb(i*m+j-);
  79. }
  80. else if(s[i][j]=='A')
  81. {
  82. if(i+<n&&s[i+][j]=='D')v[i*m+j].pb((i+)*m+j);
  83. if(i->=&&s[i-][j]=='D')v[i*m+j].pb((i-)*m+j);
  84. if(j+<m&&s[i][j+]=='D')v[i*m+j].pb(i*m+j+);
  85. if(j->=&&s[i][j-]=='D')v[i*m+j].pb(i*m+j-);
  86. }
  87. }
  88. }
  89. memset(dp,-,sizeof dp);
  90. int ans=;
  91. for(int i=;i<n;i++)
  92. for(int j=;j<m;j++)
  93. {
  94. int res=dfs(i*m+j);
  95. if(s[i][j]=='D')
  96. ans=max(ans,res/);
  97. }
  98. if(ans==)puts("Poor Dima!");
  99. else printf("%d\n",ans);
  100. return ;
  101. }
  102. /********************
  103.  
  104. ********************/

C

D:有一个队列,三种操作,1代表插入1,0代表插入0,-1代表删除下标为a[i]的数,最后输出队列里的数即可

套路题,树状数组维护前缀和,每次删点就在树状数组里的对应地方删点,然后二分找对应在树状数组里的下标

  1. //#pragma comment(linker, "/stack:200000000")
  2. //#pragma GCC optimize("Ofast,no-stack-protector")
  3. //#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
  4. //#pragma GCC optimize("unroll-loops")
  5. #include<bits/stdc++.h>
  6. #define fi first
  7. #define se second
  8. #define mp make_pair
  9. #define pb push_back
  10. #define pi acos(-1.0)
  11. #define ll long long
  12. #define mod 1000000007
  13. #define C 0.5772156649
  14. #define ls l,m,rt<<1
  15. #define rs m+1,r,rt<<1|1
  16. #define pil pair<int,ll>
  17. #define pii pair<int,int>
  18. #define ull unsigned long long
  19. #define base 1000000000000000000
  20. #define fio ios::sync_with_stdio(false);cin.tie(0)
  21.  
  22. using namespace std;
  23.  
  24. const double g=10.0,eps=1e-;
  25. const int N=+,maxn=+,inf=0x3f3f3f3f,INF=0x3f3f3f3f3f3f3f3f;
  26.  
  27. int sum[N],a[N],ans[N];
  28. int cnt;
  29. void add(int i,int v)
  30. {
  31. while(i<N)
  32. {
  33. sum[i]+=v;
  34. i+=i&(-i);
  35. }
  36. }
  37. int query(int i)
  38. {
  39. int ans=;
  40. while(i>)
  41. {
  42. ans+=sum[i];
  43. i-=i&(-i);
  44. }
  45. return ans;
  46. }
  47. int change(int x)
  48. {
  49. int l=,r=cnt+;
  50. while(l<r-)
  51. {
  52. int m=(l+r)>>;
  53. // printf("%d %d\n",m,query(m));
  54. if(query(m)<x)l=m;
  55. else r=m;
  56. }
  57. if(query(r)<x)return -;
  58. return r;
  59. }
  60. int main()
  61. {
  62. int n,m;
  63. scanf("%d%d",&n,&m);
  64. for(int i=;i<=m;i++)scanf("%d",&a[i]);
  65. cnt=;
  66. for(int i=;i<n;i++)
  67. {
  68. int x;
  69. scanf("%d",&x);
  70. if(x==-)
  71. {
  72. vector<int>v;
  73. for(int j=;j<=m;j++)
  74. {
  75. int pos=change(a[j]);
  76. // printf("###%d!!!\n",pos);
  77. if(pos==-)break;
  78. v.pb(pos);
  79. }
  80. for(int i=;i<v.size();i++)
  81. add(v[i],-);
  82. }
  83. else
  84. {
  85. add(cnt,);
  86. ans[cnt++]=x;
  87. }
  88. }
  89. // printf("%d\n",change(1));
  90. if(change()==-)return *puts("Poor stack!");
  91. for(int i=;;i++)
  92. {
  93. int pos=change(i);
  94. if(pos==-)break;
  95. printf("%d",ans[pos]);
  96. }
  97. return ;
  98. }
  99. /********************
  100.  
  101. ********************/

D

Codeforces Round #220 (Div. 2)的更多相关文章

  1. Codeforces Round #220 (Div. 2) D - Inna and Sequence

    D - Inna and Sequence 线段数维护区间有几个没有被删除的数,利用线段树的二分找第几个数在哪里,然后模拟更新就好啦. #include<bits/stdc++.h> #d ...

  2. Codeforces Round #277 (Div. 2) 题解

    Codeforces Round #277 (Div. 2) A. Calculating Function time limit per test 1 second memory limit per ...

  3. Codeforces Round #633 (Div. 2)

    Codeforces Round #633(Div.2) \(A.Filling\ Diamonds\) 答案就是构成的六边形数量+1 //#pragma GCC optimize("O3& ...

  4. 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 ...

  5. Codeforces Round #354 (Div. 2) ABCD

    Codeforces Round #354 (Div. 2) Problems     # Name     A Nicholas and Permutation standard input/out ...

  6. Codeforces Round #368 (Div. 2)

    直达–>Codeforces Round #368 (Div. 2) A Brain’s Photos 给你一个NxM的矩阵,一个字母代表一种颜色,如果有”C”,”M”,”Y”三种中任意一种就输 ...

  7. cf之路,1,Codeforces Round #345 (Div. 2)

     cf之路,1,Codeforces Round #345 (Div. 2) ps:昨天第一次参加cf比赛,比赛之前为了熟悉下cf比赛题目的难度.所以做了round#345连试试水的深浅.....   ...

  8. Codeforces Round #279 (Div. 2) ABCDE

    Codeforces Round #279 (Div. 2) 做得我都变绿了! Problems     # Name     A Team Olympiad standard input/outpu ...

  9. Codeforces Round #262 (Div. 2) 1003

    Codeforces Round #262 (Div. 2) 1003 C. Present time limit per test 2 seconds memory limit per test 2 ...

随机推荐

  1. JSON LIKE

    is_exist = HelperInfoModel.query.filter(and_("json_extract(content,'$.cn'" == content.get( ...

  2. Python菜鸟之路:Django CMDB剖析

    CMDB需求分析 1. 采集资产 采集方式的配置(agent/salt/ssh三种方式) agent是在本地执行 salt和ssh则是在远端执行,首先通过API获取任务,然后去远端获取执行结果 插件的 ...

  3. 利用python实现TCP和UDP服务器

    利用python的socket模块可以实现基本的网络编程,并且只限于一对一的连接.当然,也可以在其基础上实现一个网络服务器,但由于太底层这种做法不被推荐.其实如果要实现一个网络服务器很简单,调用pyt ...

  4. 2015-03-11——简析DOM规范

    DOM 0级指浏览器专有的,非标准的方法.对象和集合. DOM 1级 1998年发布包括:DOM coreDOM html DOM 2级 DOM2 core 2000年发布  DOM2 html 20 ...

  5. OVN实战---《The OVN Gateway Router》翻译

    Overview 在本文中我将在前文的基础上添加一个OVN gateway router.gateway router将使得lab network能访问我们的overlay network The l ...

  6. django博客项目1.环境搭建

    安装 Python Windows 下安装 Python 非常简单,去 Python 官方网站找到 Python 3 的下载地址,根据你的系统选择 32 位或者 64 位的安装包,下载好后双击安装即可 ...

  7. Android项目使用Ant多渠道打包(最新sdk)

    参考文章: http://blog.csdn.net/liuhe688/article/details/6679879 http://www.eoeandroid.com/thread-323111- ...

  8. SvsUtil.exe生成服务文件

    在程序中调用某个 WCF Services 一般按照如下步骤进行: 生成对应 Service 的代理类.程序创建该代理类实例,访问指定方法. 生成代理类 可通过在 Visual Studio 中针对某 ...

  9. PAT 天梯赛 L1-004. 计算摄氏温度 【水】

    题目链接 https://www.patest.cn/contests/gplt/L1-004 AC代码 #include <iostream> #include <cstdio&g ...

  10. master: Error: JAVA_HOME is not set and could not be found.问题解决