CF580A

给出一个数列,求最长不下降子序列(连续)

直接DP,O(n)

CF580B

主人公有n个朋友,每一个朋友有2个属性:m,sat

现在他想邀请部分朋友,邀请的人满足MAX_M-MIN_M<d的条件下,使得sat之和最大

排序,前缀和,枚举左端点,二分右端点

O(NlogN)

  1. #include<cstdio>
  2. #include<cstring>
  3. #include<algorithm>
  4. #include<iostream>
  5.  
  6. #define ll long long
  7.  
  8. using namespace std;
  9.  
  10. const int maxn=1e5+;
  11.  
  12. ll sum[maxn];
  13.  
  14. struct A
  15. {
  16. ll m,s;
  17. };
  18. A a[maxn];
  19.  
  20. bool cmp(A x,A y)
  21. {
  22. return x.m<y.m;
  23. }
  24.  
  25. void solve(int ,ll );
  26.  
  27. int main()
  28. {
  29. int n;
  30. ll d;
  31. scanf("%d %I64d",&n,&d);
  32. for(int i=;i<=n;i++){
  33. scanf("%I64d %I64d",&a[i].m,&a[i].s);
  34. }
  35. solve(n,d);
  36.  
  37. return ;
  38. }
  39.  
  40. int bs(int i,int n,ll d)
  41. {
  42. int l=i;
  43. int r=n;
  44. while(l+<r){
  45. int mm=(l+r)>>;
  46. if(a[mm].m>=a[i].m+d)
  47. r=mm;
  48. else
  49. l=mm;
  50. }
  51. if(a[r].m<a[i].m+d)
  52. return r;
  53. else
  54. return l;
  55. }
  56.  
  57. void solve(int n,ll d)
  58. {
  59. sort(a+,a+n+,cmp);
  60.  
  61. sum[]=;
  62. for(int i=;i<=n;i++)
  63. sum[i]=sum[i-]+a[i].s;
  64.  
  65. ll ret=;
  66. for(int i=;i<=n;i++){
  67. int r=bs(i,n,d);
  68. ret=max(ret,sum[r]-sum[i-]);
  69. }
  70.  
  71. cout<<ret<<endl;
  72. return ;
  73. }

CF580C

水题,直接dfs

  1. #include<cstdio>
  2. #include<cstring>
  3. #include<algorithm>
  4.  
  5. #define ll long long
  6.  
  7. using namespace std;
  8.  
  9. const int maxn=1e5+;
  10. const int inf=0x3f3f3f3f;
  11.  
  12. struct Edge
  13. {
  14. int to,next;
  15. };
  16. Edge edge[maxn<<];
  17. int head[maxn];
  18. int tot;
  19.  
  20. int e[maxn][];
  21. int out[maxn];
  22. int val[maxn];
  23. int dep[maxn];
  24.  
  25. void solve(int ,int );
  26.  
  27. void pre_init()
  28. {
  29. memset(head,-,sizeof head);
  30. tot=;
  31. }
  32.  
  33. void addedge(int u,int v)
  34. {
  35. edge[tot].to=v;
  36. edge[tot].next=head[u];
  37. head[u]=tot++;
  38. }
  39.  
  40. int main()
  41. {
  42. pre_init();
  43. int n,m;
  44. scanf("%d %d",&n,&m);
  45. for(int i =;i<=n;i++)
  46. scanf("%d",&val[i]);
  47. for(int i=;i<n;i++){
  48. scanf("%d %d",&e[i][],&e[i][]);
  49. addedge(e[i][],e[i][]);
  50. addedge(e[i][],e[i][]);
  51. }
  52.  
  53. solve(n,m);
  54.  
  55. return ;
  56. }
  57.  
  58. void dfs(int u,int pre)
  59. {
  60. for(int i=head[u];~i;i=edge[i].next){
  61. int v=edge[i].to;
  62. if(v==pre)
  63. continue;
  64. dep[v]=dep[u]+;
  65. if(val[v])
  66. val[v]+=val[u];
  67. dfs(v,u);
  68. }
  69. }
  70.  
  71. void dfs1(int u,int pre)
  72. {
  73. for(int i=head[u];~i;i=edge[i].next){
  74. int v=edge[i].to;
  75. if(v==pre)
  76. continue;
  77. val[v]=max(val[v],val[u]);
  78. dfs1(v,u);
  79. }
  80. }
  81.  
  82. void solve(int n,int m)
  83. {
  84. memset(dep,,sizeof dep);
  85. dfs(,-);
  86. dfs1(,-);
  87. memset(out,,sizeof out);
  88.  
  89. for(int i=;i<n;i++){
  90. if(dep[e[i][]]<dep[e[i][]])
  91. out[e[i][]]++;
  92. else
  93. out[e[i][]]++;
  94. }
  95.  
  96. int ret=;
  97. for(int i=;i<=n;i++){
  98. if(!out[i] && val[i]<=m)
  99. ret++;
  100. }
  101. printf("%d\n",ret);
  102. return ;
  103. }

CF577A

一个n*n的矩阵,maze[i][j]=i*j现在给出x,问x在矩阵中出现的次数

水题

  1. #include<cstdio>
  2. #include<cstring>
  3. #include<algorithm>
  4. #include<iostream>
  5. #include<cmath>
  6.  
  7. #define ll long long
  8. #define ld long double
  9.  
  10. using namespace std;
  11.  
  12. int main()
  13. {
  14. ld n,x;
  15. cin>>n>>x;
  16. if(n*n<x){
  17. cout<<<<endl;
  18. return ;
  19. }
  20. int m=sqrt(x);
  21. ll ans=;
  22. bool flag=false;
  23. if((ld)m*m==x){
  24. ans++;
  25. m--;
  26. flag=true;
  27. }
  28. for(int i=;i<=m;i++){
  29. if(i>n || i>x)
  30. break;
  31. if((ll)x%i== && ((ll)x/i)<=n){
  32. ans++;
  33. }
  34. }
  35. ans*=;
  36. if(flag)
  37. ans--;
  38. cout<<ans<<endl;
  39. return ;
  40. }

CF579A

水题,答案为输入的数的二进制中,1的个数

CF579B

水题,一个排序就好了

CF 15/09/23的更多相关文章

  1. 总结 Date 2017.09.23

    总结 Date 2017.09.23 <1>统计数字 某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5*10^9).已知不相同的数不超过10000个,现在需要统计 ...

  2. Java初步学习——2021.09.23每日报告,第三周周四

    (1)今天做了什么: (2)明天准备做什么? (3)遇到的问题,如何解决? 学习数组,编写了一个随机选牌的代码.自己最开始一直想只设置一个字符串数组,利用随机数来输出,但那样对字符串赋值会比较麻烦.可 ...

  3. C语言中返回字符串函数的四种实现方法 2015-05-17 15:00 23人阅读 评论(0) 收藏

    C语言中返回字符串函数的四种实现方法 分类: UNIX/LINUX C/C++ 2010-12-29 02:54 11954人阅读 评论(1) 收藏 举报 语言func存储 有四种方式: 1.使用堆空 ...

  4. CF Educational Round 23 F.MEX Queries

    写了3小时 = =.这两天堕落了,昨天也刷了一晚上hihocoder比赛,还爆了零.之后得节制点了,好好准备考研.. 首先很容易想到 压缩数据 + 线段树 然后对于Pushdown真很难写..需要牵涉 ...

  5. MySQL Crash Course #15# Chapter 23. Working with Stored Procedures

    以前写过类似的东西,用来自动生成数据. 你可以将 Stored Procedure 理解为可以重复使用的批处理文件. Stored Procedure 非常有用,我们应该尽可能地去使用它. 那么,应用 ...

  6. 2018.09.23 codeforces 1053B. Vasya and Good Sequences(前缀和)

    传送门 考试的时候卡了一会儿. 显然这个答案只跟二进制位为1的数量有关. 还有一个显然的结论. 对于一个区间[l,r][l,r][l,r],如果其中单个数二进制位为1的数量最大值不到区间所有数二进制位 ...

  7. 2018.09.23 codeforces 1053A. In Search of an Easy Problem(gcd)

    传送门 今天的签到题. 有一个很显然的结论,gcd(n∗m,k)≤2gcd(n*m,k)\le 2gcd(n∗m,k)≤2. 本蒟蒻是用的行列式求三角形面积证明的. 如果满足这个条件,就可以直接构造出 ...

  8. 2018.09.23 atcoder Boxes and Candies(贪心)

    传送门 一道挺有意思的贪心. 从1到n依次满足条件. 注意要特判第一个数已经大于x的情况. 但是如何贪心吃呢? 如果靠左的数没有越界,我们吃靠右的数. 原因是下一次靠右的数就会成为靠左的数,相当于多贡 ...

  9. 2018.09.23 bzoj1076: [SCOI2008]奖励关(期望+状压dp)

    传送门 一道神奇的期望状压dp. 用f[i][j]f[i][j]f[i][j]表示目前在第i轮已选取物品状态为j,从现在到第k轮能得到的最大贡献. 如果我们从前向后推有可能会遇到不合法的情况. 所以我 ...

随机推荐

  1. List of devices attached ???????????? no permissions

    如果显示如下:List of devices attached???????????? no permissions就要设置usb $ lsusbBus 005 Device 001: ID 1d6b ...

  2. [BZOJ 3622]已经没有什么好害怕的了

    世萌萌王都拿到了,已经没有什么好害怕的了——    (作死) 笑看哪里都有学姐,真是不知说什么好喵~ 话说此题是不是输 0 能骗不少分啊,不然若学姐赢了,那么有头的学姐还能叫学姐吗?  (作大死) 这 ...

  3. 【转】GitHub 中国区前 100 名到底是什么样的人?

    原文网址:http://mt.sohu.com/20160407/n443539407.shtml 本文根据Github公开API,抓取了地址显示China的用户,根据粉丝关注做了一个排名,分析前一百 ...

  4. radhat 6.4/centos 6.4 下编译安装 最新ruby 2.1.5

    #安装编译环境 yum groupinstall "Development tools" 或者 yum install gcc gcc-c++ gcc-g77 flex bison ...

  5. docker镜像、容器

    第一部分:Docker镜像的基本知识 1.1 什么是Docker镜像 从整体的角度来讲,一个完整的Docker镜像可以支撑一个Docker容器的运行,在 Docker容器运行过程中主要提供文件系统视角 ...

  6. Code First 约定

    Code First 约定 借助 Code First,可通过使用 C# 或 Visual Basic .NET 类来描述模型.模型的基本形状可通过约定来检测.约定是规则集,用于在使用 Code Fi ...

  7. unity, eulerAngle

    unity中欧拉角规定如下: A rotation that rotates euler.z degrees around the z axis, euler.x degrees around the ...

  8. Python报错UnicodeDecodeError: 'ascii' codec can't decode byte 0xe0 in position 0: ordinal not in range(128)

    解决办法: 在报错的页面添加代码: import sys reload(sys) sys.setdefaultencoding('utf8')

  9. git教程,待学习

    http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 Git教程: Git简介Git的诞 ...

  10. 如何创建自己的docker image并上传到DockerHub上

    这里,记录一下比较常用的docker操作细节,对于初次使用者,可能有很大的帮助. docker作为云计算Paas层面的东西,风靡全世界了,主要是因为它小巧,好用,功能强大.今天主要介绍一下如何依据自己 ...