day6下
来源:互联网 发布:centos软件包管理器 编辑:程序博客网 时间:2024/05/16 00:25
t1
函数最值
【问题描述】
给定一个 n 个数的数组 A,函数 F(x) = a[i]*x 的第 i 个二进制位。求 F 的最大值 x 为整数且
0<=x<=m.
对每一位处理,如果可以,就选或不选,不选之后的都可以选,选了再继续这个过程
#include<cstdio>#include<iostream>#include<algorithm>using namespace std;long long n,m,t,ans,a[119999],s[110000],c[110000],sum;char b[110000];int main(){ freopen("maximum.in","r",stdin); freopen("maximum.out","w",stdout); scanf("%lld",&n); for(int i=1;i<=n;i++) scanf("%lld",&a[i]);cin>>b+1; for(int i=1;i<=n;i++) c[i]=b[i]-'0',s[i]=s[i-1]+((a[i]>0)?a[i]:0); for(int i=n;i>=1;i--){ if(c[i]){ ans=max(ans,sum+s[i-1]); if(a[i]<=0) break; sum+=a[i]; } } printf("%lld",max(ans,sum)); }
t2
函数最值 2
【问题描述】
对于一个数组 A 定义 F(A) = max abs(a[i] – a[i+1]); 给定一个数组,最多修改其中 k 个元素,
求 F(A)的最小值
二分答案,dp判断可不可以
只有小于他才能改,大于他不能改,应该说怎么改都不可能满足
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cstdlib>using namespace std;int n,k;int a[2000],f[2000];int ok(int x){ f[1] = 0; int ans = n; for (int i = 2; i<=n;i++) { f[i] = i-1; for (int j = 1; j<i;j++) if (abs(a[i]-a[j])<=((long long)x*(i-j))) f[i] = min(f[i],f[j]+(i-j-1)); ans = min(ans,f[i]+n-i); } return ans<=k;}int main(){ freopen("minimum.in","r",stdin); freopen("minimum.out","w",stdout); scanf("%d%d",&n,&k); for (int i = 1; i<=n;i++) scanf("%d",&a[i]); int l = 0, r = 1000000001; while (l<=r) { int mid=(l+r)>>1; if (ok(mid)) r=mid-1; else l=mid+1; } printf("%d\n",l); return 0;}
阅读全文
1 0
- day6下
- day6
- Day6
- day6
- DAY6
- Day6
- DAY6
- Day6
- day6
- DAY6
- DAY6
- day6
- Day6
- day6
- day6
- Day6
- DAY6
- day6-笔记
- 实践操作:六步教你如何用开源框架Tensorflow对象检测API构建一个玩具检测器
- CC2530中的帧过滤(兼容IEEE 802.15.4-2006三级帧过滤)
- hdu6222(递推规律+java大数)
- hough forest----Class-Specific Hough Forests for Object Detection
- 日记本首页(index.php)
- day6下
- php上传公众号临时素材-微信开发素材管理6
- C++菱形继承+虚继承
- 一张图解mysql的join关系
- HTML5-网页排版划分
- 【HDU 6228、2017ACM/ICPC亚洲区沈阳站】Tree
- 输入n输出1/3+3/5+5/7+······+n/(n+2)的分数形式(n<40)
- 操作系统的工作流程(流程图表示)
- DHCP(一)