CF580A

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

直接DP,O(n)

CF580B

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

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

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

O(NlogN)

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream> #define ll long long using namespace std; const int maxn=1e5+; ll sum[maxn]; struct A
{
ll m,s;
};
A a[maxn]; bool cmp(A x,A y)
{
return x.m<y.m;
} void solve(int ,ll ); int main()
{
int n;
ll d;
scanf("%d %I64d",&n,&d);
for(int i=;i<=n;i++){
scanf("%I64d %I64d",&a[i].m,&a[i].s);
}
solve(n,d); return ;
} int bs(int i,int n,ll d)
{
int l=i;
int r=n;
while(l+<r){
int mm=(l+r)>>;
if(a[mm].m>=a[i].m+d)
r=mm;
else
l=mm;
}
if(a[r].m<a[i].m+d)
return r;
else
return l;
} void solve(int n,ll d)
{
sort(a+,a+n+,cmp); sum[]=;
for(int i=;i<=n;i++)
sum[i]=sum[i-]+a[i].s; ll ret=;
for(int i=;i<=n;i++){
int r=bs(i,n,d);
ret=max(ret,sum[r]-sum[i-]);
} cout<<ret<<endl;
return ;
}

CF580C

水题,直接dfs

#include<cstdio>
#include<cstring>
#include<algorithm> #define ll long long using namespace std; const int maxn=1e5+;
const int inf=0x3f3f3f3f; struct Edge
{
int to,next;
};
Edge edge[maxn<<];
int head[maxn];
int tot; int e[maxn][];
int out[maxn];
int val[maxn];
int dep[maxn]; void solve(int ,int ); void pre_init()
{
memset(head,-,sizeof head);
tot=;
} void addedge(int u,int v)
{
edge[tot].to=v;
edge[tot].next=head[u];
head[u]=tot++;
} int main()
{
pre_init();
int n,m;
scanf("%d %d",&n,&m);
for(int i =;i<=n;i++)
scanf("%d",&val[i]);
for(int i=;i<n;i++){
scanf("%d %d",&e[i][],&e[i][]);
addedge(e[i][],e[i][]);
addedge(e[i][],e[i][]);
} solve(n,m); return ;
} void dfs(int u,int pre)
{
for(int i=head[u];~i;i=edge[i].next){
int v=edge[i].to;
if(v==pre)
continue;
dep[v]=dep[u]+;
if(val[v])
val[v]+=val[u];
dfs(v,u);
}
} void dfs1(int u,int pre)
{
for(int i=head[u];~i;i=edge[i].next){
int v=edge[i].to;
if(v==pre)
continue;
val[v]=max(val[v],val[u]);
dfs1(v,u);
}
} void solve(int n,int m)
{
memset(dep,,sizeof dep);
dfs(,-);
dfs1(,-);
memset(out,,sizeof out); for(int i=;i<n;i++){
if(dep[e[i][]]<dep[e[i][]])
out[e[i][]]++;
else
out[e[i][]]++;
} int ret=;
for(int i=;i<=n;i++){
if(!out[i] && val[i]<=m)
ret++;
}
printf("%d\n",ret);
return ;
}

CF577A

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

水题

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<cmath> #define ll long long
#define ld long double using namespace std; int main()
{
ld n,x;
cin>>n>>x;
if(n*n<x){
cout<<<<endl;
return ;
}
int m=sqrt(x);
ll ans=;
bool flag=false;
if((ld)m*m==x){
ans++;
m--;
flag=true;
}
for(int i=;i<=m;i++){
if(i>n || i>x)
break;
if((ll)x%i== && ((ll)x/i)<=n){
ans++;
}
}
ans*=;
if(flag)
ans--;
cout<<ans<<endl;
return ;
}

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. ExtJS控件样式修改及美化

    Extjs项目对富客户端开发提供了强有力的支持,甚至改变了前端的开发方式,使得开发变得更加趋向于“面向组件”.对界面的美化而言,也是根本性的改变.普通的网页美工面对extjs项目根本无法下手,需要脚本 ...

  2. 两篇很牛的vim使用技巧

    读本文之前请注意: 1. 本文的目标是提供一些vim的使用技巧,利用这些技巧可以提高vim的操作效率.部分技巧在vi上也可以使用,但是现在基本上都是用vim了. 2. 本文是整理和总结使用技巧,而非讲 ...

  3. socket模块

    1 1.1 server: #!/use/local/env python# -*- coding:utf-8 -*- import socket ip_port = ('127.0.0.1', 99 ...

  4. windows7旗舰版激活密钥永久版免费分享

    windows7之家不仅提供精品Win7教程 给大家,加上这个windows7激活密匙还帮大家解决windows7系统激活问题,包括win7旗舰版 windows7安装版这些. 用的是Windows7 ...

  5. Linux进程间通信-匿名管道

    前面我们讲了进程间通信的一种方式,共享内存.下面看一看另一种机制,匿名管道.1.什么是管道管道是一个进程的数据流到另一个进程的通道,即一个进程的数据输出作为另一个进程的数据输入,管道起到了桥梁的作用. ...

  6. WCF入门教程四[WCF的配置文件]

    一.概述 配置也是WCF编程中的主要组成部分.在 以往的.net应用程序中,我们会把DBConn和一些动态加载类及变量写在配置文件里.但WCF有所不同.他指定向客户端公开的服务,包括服务的地址. 服务 ...

  7. pam

    http://www.linux-pam.org/ sag(the linux-pam system administrators' guide)翻译(以下是网上别人的翻译,参考一下) http:// ...

  8. mfs-用户

    http://blog.csdn.net/liuyunfengheda/article/details/5260278 MFS总结 http://bbs.chinaunix.net/thread-16 ...

  9. 数据接口管理工具 thx RAP

    RAP是数据接口管理工具.在开发时前端将请求转至RAP,由RAP提供模拟数据:而后端使用RAP测试接口的正确性.这样RAP就成为了开发过程中的强 依赖,进而确保接口文档的实时正确性.RAP采用JSON ...

  10. 【性能诊断】六、并发场景的性能分析(windbg案例,大量的内部异常造成CPU飙升)

    在做产品的某个核心模块的性能优化时,发现压到100并发时应用服务器的CPU就飙升至90%以上,50并发以后TPS就基本定格在一个数值上.使用性能监视器收集应用服务器的数据,发现每秒的.NET CLR ...