难度:☆☆

/*显然可以前缀和*/
#include<iostream>
#include<cstdio>
#include<cstring> #define N 100007 using namespace std;
int n,m,ans,cnt;
int a[N],sum[N];char s[N]; int main()
{
freopen("reverse.in","r",stdin);
freopen("reverse.out","w",stdout);
scanf("%s",s);n=strlen(s);ans=N+N;
if(n==)
{
printf("0\n");
return ;
}
for(int i=;i<n;i++) a[i+]=s[i]==''?:;
for(int i=;i<=n;i++) sum[i]=sum[i-]+a[i];
for(int i=;i<=n;i++)
{
ans=min(ans,sum[i]+n-i-(sum[n]-sum[i]));
}
printf("%d\n",ans);
return ;
}

/*
枚举,用vis一个二进制数组表示当前数每一位的状态,出现或者不出现。
然后把二进制转为十进制,cnt[十进制]+1。
最后因为要求多少对,所以答案累加C(i,2)。
*/
#include<iostream>
#include<cstdio>
#include<cstring> #define size 1024 using namespace std;
int n,cnt[size],vis[];
int Use[]={,,,,,,,,,};
long long ans; int main()
{
freopen("number.in","r",stdin);
freopen("number.out","w",stdout);
cin>>n;
int start,End;
for(int i=;i<=n;i++)
{
start=i;End=;memset(vis,,sizeof vis);
while(start) vis[start%]=,start/=;
for(int j=;j<=;j++) if(vis[j]) End+=Use[j];
cnt[End]++;
}
for(int i=;i<size;i++) ans+=1ll*cnt[i]*(cnt[i]-)/;
cout<<ans<<endl;
fclose(stdin);fclose(stdout);
return ;
}

/*
做法类似最长上升子序列
线段树可以优化到70,不会写没治...
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib> #define N 10000007 using namespace std;
int dp[N],a[N],cnt[N];
int n,k,ans; int main()
{
freopen("wave14.in","r",stdin);
freopen("wave.out","w",stdout);
scanf("%d%d",&n,&k);
for(int i=;i<=n;i++) scanf("%d",&a[i]);
for(int i=;i<=n;i++) dp[i]=cnt[i]=;
for(int i=;i<=n;i++)
{
for(int j=;j<=i;j++)
{
if(abs(a[j]-a[i])>=k)
{
if(cnt[j]%== && a[i]<a[j])
{
if(dp[i]<dp[j]+) dp[i]=dp[j]+,cnt[i]=cnt[j]+;
}
else if(cnt[j]%!= && a[i]>=a[j])
{
if(dp[i]<dp[j]+) dp[i]=dp[j]+,cnt[i]=cnt[j]+;
}
else dp[i]=max(dp[i],dp[j]);
}
}
}
printf("%d\n",dp[n]);
fclose(stdin);fclose(stdout);
return ;
}

30分暴力dp

/*
很神奇。
贪心,在满足k的限制下,偶数项尽量大,奇数项尽量小。
*/
#include<iostream>
#include<cstdio>
#include<cstring> #define N 2000007 using namespace std;
int a[N];
int n,k,m,ans,cur; inline int read()
{
int x=,f=;char c=getchar();
while(c>''||c<''){if(c=='-')f=-;c=getchar();}
while(c>=''&&c<=''){x=x*+c-'';c=getchar();}
return x*f;
} int main()
{
n=read();k=read();
for(int i=;i<n;i++) a[i]=read();
ans=,m=,cur=a[];
for(int i=;i<n;i++)
{
if(m)
if(cur-a[i]>=k)
m=,ans++,cur=a[i];
else cur=max(cur,a[i]); else
if(a[i]-cur>=k)
m=,ans++,cur=a[i];
else cur=min(cur,a[i]);
}
printf("%d\n",ans);
return ;
}

湖南集训day2的更多相关文章

  1. 主席树 || 可持久化线段树 || BZOJ 3653: 谈笑风生 || Luogu P3899 [湖南集训]谈笑风生

    题面:P3899 [湖南集训]谈笑风生 题解: 我很喜欢这道题. 因为A是给定的,所以实质是求二元组的个数.我们以A(即给定的P)作为基点寻找答案,那么情况分两类.一种是B为A的父亲,另一种是A为B的 ...

  2. P3900 [湖南集训]图样图森破

    P3900 [湖南集训]图样图森破 链接 分析: 感觉像个暴力. 可以枚举回文串的回文中心,即枚举一个串,枚举一个串的位置作为回文中心,然后求出这个串内的回文串的长度. 此时如果回文串两端都没有到这个 ...

  3. WC集训DAY2笔记 组合计数 part.1

    目录 WC集训DAY2笔记 组合计数 part.1 基础知识 组合恒等式 错排数 卡特兰数 斯特林数 伯努利数 贝尔数 调和级数 后记 补完了几天前写的东西 WC集训DAY2笔记 组合计数 part. ...

  4. 2019暑期金华集训 Day2 线性代数

    自闭集训 Day2 线性代数 高斯消元 做实数时,需要找绝对值最大的作为主元,以获取更高精度. 在欧几里得环(简单例子是模合数)意义下也是对的.比如模合数意义下可以使用辗转相除法消元. 欧几里得环:对 ...

  5. 暑假集训Day2 互不侵犯(状压dp)

    这又是个状压dp (大型自闭现场) 题目大意: 在N*N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案.国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共8个格子. ...

  6. 2022寒假集训day2

    day1:学习seach和回溯,初步了解. day2:深度优化搜索 T1 洛谷P157:https://www.luogu.com.cn/problem/P1157 题目描述 排列与组合是常用的数学方 ...

  7. 考前停课集训 Day2 非

    因为太长了 所以一天一天分开发 Day2 昨天晚上没开黑车 没脱衣服就睡了 可能是我难受了…… 新的一天. 早上好. 我没去晨跑,早上先和团长集合了,没看见rkbudlo来 于是就先吃饭了 去机房的时 ...

  8. 长沙雅礼中学集训-------------------day2

    怎么说呢,今天的题特别的神奇,因为emmmmmm,T1看不懂(一直到现在还没有理解明白期望概率什么的),T2题面看不懂+扩展欧几里得求逆元怎么求我忘了,T3哇,终于看懂一题了,然而写了个50分的程序但 ...

  9. 集训Day2

    雅礼集训2017Day2 T1 给你一个水箱,水箱里有n-1个挡板,水遵循物理定律 给你m个条件,表示第i个格子上面y+1高度的地方有或没有水 现在给你无限的水从任意地方往下倒,问最多满足多少条件 n ...

随机推荐

  1. crond定时操作 crontab

    * * * * *  分别表示 分钟  小时  日  月  星期(0-6) 30 17,28,19 * * *  或 30 17-19 * * *  在每天的17-19小时半点时刻执行 30 8-18 ...

  2. drf版本控制 django缓存

    drf的版本控制 内置的版本控制类 from rest_framework.versioning import QueryParameterVersioning,AcceptHeaderVersion ...

  3. 利用PowerDesigner逆向工程导出PDM模型及生成文档

    原文:利用PowerDesigner逆向工程导出PDM模型及生成文档 最近需要对老项目进行重构优化,由于项目都是好几年前的,相关设计资料很不全,最基本的数据库设计文档都没有,只能利用PowerDesi ...

  4. action属性和data属性组合事例

  5. 浅谈Http长连接和Keep-Alive以及Tcp的Keepalive

    原文:https://blog.csdn.net/weixin_37672169/article/details/80283935 Keep-Alive模式: 我们知道Http协议采用“请求-应答”模 ...

  6. python学习--Django mvc框架简介

    让我们一览 Django 全貌 urls.py 网址入口,关联到对应的views.py中的一个函数(或者generic类),访问网址就对应一个函数. views.py 处理用户发出的请求,从urls. ...

  7. HTTP的一些概念

    1. 什么是回调? 回调是异步编程时的基础,将后续逻辑封装成起始函数的参数,逐层嵌套 2. 什么是同步/异步? 同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式. 异步是指: ...

  8. 01 Java 代码是怎么运行的

    Java代码运行的方式 1:在开发工具中运行 2:双击 jar 文件运行 3:在命令行中运行 4:在网页中运行 上述运行方式都离不开 JRE,也就是 Java 运行时环境.实际上 JRE 仅包含运行 ...

  9. 【mysql优化 2】索引条件下推优化

    原文地址:Index Condition Pushdown Optimization 索引条件下推(ICP:index condition pushdown)是mysql中一个常用的优化,尤其是当my ...

  10. OA笔记

    一:Asp.Net MVC请求处理原理(Asp.Net mvc 是怎样进入请求管道的.)请求-->IIS--->ISAPIRuntime-->HttpWorkRequest--> ...