当前位置: 首页 > news >正文

七牛直播网站怎么做/华为手机业务最新消息

七牛直播网站怎么做,华为手机业务最新消息,网站上传根目录,潍坊建设网站的公司文章目录 十字爆破(暴力)题解代码 比那名居的桃子(滑动窗口/前缀和)题解代码 分组(暴力枚举 优化二分)题解代码 十字爆破(暴力) 题目链接 题解 1. 暴力 预处理 2. 如果单纯的暴…

文章目录

  • 十字爆破(暴力)
    • 题解
    • 代码
  • 比那名居的桃子(滑动窗口/前缀和)
    • 题解
    • 代码
  • 分组(暴力枚举 + 优化二分)
    • 题解
    • 代码

十字爆破(暴力)

题目链接

题解

1. 暴力 + 预处理
2. 如果单纯的暴力写法是会超时的,遍历n*m的矩阵和每次在循环里求当前行和列,n * m * (n+m)->2e9的时间复杂度
3. 在输入的时候就预处理每一行的和和每一列的和,可以在后面输出的时候直接用,row[i] + col[j] - a[i][j],注意一个细节就是当前点会加两次,减去一次

代码

#include<iostream>using namespace std;
typedef long long ll;
ll n,m;
const int N = 1e6 + 10;
ll row[N];// 行
ll col[N];// 列int main()
{scanf("%lld %lld",&n,&m);ll a[n][m];for(int i = 0;i < n;i++){for(int j = 0;j < m;j++){scanf("%lld",&a[i][j]);// 预处理每一行// 预处理每一列row[i] += a[i][j];col[j] += a[i][j];}}    for(int i = 0;i < n;i++){for(int j = 0;j < m;j++){printf("%lld ",row[i] + col[j] - a[i][j]);}cout << '\n';}return 0;
}

比那名居的桃子(滑动窗口/前缀和)

题目链接
在这里插入图片描述

题解

1. 暴力解法是维护一个长度为k的区间,每次都要重新从一个点出发走k个点的距离
2. 滑动窗口是两个指针维护一个k大小的固定区间,每次找到happy值大的区间更新begin,如果happy值相同的话并且羞耻值小的话,更新begin,注意一下细节,天数是从1开始的
3. 前缀和也是维护一个区间的快乐值和羞耻度,思路和滑动窗口是一样的

在这里插入图片描述
优先级最高的就是快乐值多的,其次就是快乐值相同,羞耻度小的优先,快乐值和羞耻度都相等是不用判断的,因为在前面判断的有一个这种值,后面也不更新,不就是最早的了
在这里插入图片描述

代码

// 滑动窗口
#include<iostream>using namespace std;typedef long long ll;
const int N = 1e5 + 10;
ll h[N],s[N];// 快乐值和羞耻度
ll n,k;int main()
{cin >> n >> k;for(int i = 0;i < n;i++) cin >> h[i];for(int i = 0;i < n;i++) cin >> s[i];ll hMax = 0,sMin = 0;ll hSum = 0,sSum = 0,begin = 0,left = 0,right = 0;while(right < n){// 进窗口hSum += h[right];sSum += s[right];// 判断出窗口while(right - left + 1 > k){hSum -= h[left];sSum -= s[left];left++;}// 更新结果if(right - left + 1 == k){if(hSum > hMax){hMax = hSum;sMin = sSum;begin = left;}if(hSum == hMax && sSum < sMin){hMax = hSum;sMin = sSum;begin = left;}}right++;}cout << begin + 1<< '\n';return 0;
}
// 前缀和
#include<iostream>using namespace std;typedef long long ll;
ll n,k;
const int N = 1e5 + 10;
int a[N];// happy
int b[N];// shy
ll h[N];
ll s[N];int main()
{cin >> n >> k;for(int i = 1;i <= n;i++) cin >> a[i];for(int i = 1;i <= n;i++) cin >> b[i];for(int i = 1;i <= n;i++) {h[i] = h[i-1] + a[i];s[i] = s[i-1] + b[i];}ll left = 1,right = k,hMax = 0,sMin = 0;ll hSum = 0,sSum = 0,begin;while(right <= n){hSum = h[right] - h[left-1];sSum = s[right] - s[left-1];if(hSum > hMax){hMax = hSum;sMin = sSum;begin = left;}else if(hSum == hMax && sSum < sMin){hMax = hSum;sMin = sSum;begin = left;}left++;right++;}cout << begin << '\n';return 0;
} 

分组(暴力枚举 + 优化二分)

题目链接
在这里插入图片描述

题解

1. 方法一:暴力枚举
2. 如果声部的数量大于小组的数量,那么无法分配,会输出-1,题意理解,让人数多的小组也尽可能要少的人数
3. 可以枚举每组的人数,从小到大枚举,统计每个声部可以分成的组数,这些组数相加,如果小于等于m,就是合法的,hmax是某种声部人数最多的,可以分成一组的最大人数
4. 第二种方法:二分法,产生了一个二段性,check(mid) <= m(合法的)和check(mid) > m(不合法的),合法的在右边,right = mid,不合法的在左边,left = mid + 1

在这里插入图片描述
在这里插入图片描述

代码

#include<iostream>
#include<unordered_map>
#include<algorithm>
using namespace std;unordered_map<int,int> cnt;// <种类,人数> 统计每种声部的人数
int n,m;bool check(int k)
{int ans = 0;for(auto& [a,b] : cnt){ans += b / k + (b % k == 0 ? 0 : 1);}return ans <= m;
}int main()
{cin >> n >> m;int hashmax = 0;// 统计可以枚举的最多的人数for(int i = 0;i < n;i++){int x;cin >> x;hashmax = max(hashmax,++cnt[x]);}int k = cnt.size();// 声部的种类// 声部的种类大于组数是无法分的if(k > m){cout << -1 << '\n';}else{//for(int i = 1;i <= hashmax;i++)//{//  if(check(i)) //{//  cout << i << '\n'; // break;// }//}// 二分int l = 1,r = hashmax;while(l < r){int mid = (l + r) / 2;if(check(mid)) r = mid;else l = mid + 1;}cout << l << '\n';}    return 0;
}
http://www.lryc.cn/news/577669.html

相关文章:

  • 东莞建设网站/搭建网站费用是多少
  • 福州网站开发/资源企业网站排名优化价格
  • wordpress大站/seo网站推广方案
  • 什么网站对护肤品测评做的很好/免费访问国外网站的app
  • 做简易网站/最新清远发布
  • 杭州 洛阳网站建设公司 网络服务/文案发布平台
  • 免费做婚礼邀请函的网站/seo有些什么关键词
  • 那网站做问答/百度搜索推广方法
  • asp网站源代码/seo最新优化技术
  • 镇江网站建设一般多少钱/推广策略有哪些方法
  • 天津省网站制作厂家/广告联盟有哪些
  • 成都微信开发小程序/seo关键词排名优化费用
  • 缔烨建设公司网站/营销广告网站
  • 新余 网站建站 设计 公司/百度销售平台
  • html页面能做成网站吗/核心关键词和长尾关键词举例
  • 网站为什么没有排名了/教育培训机构十大排名
  • 西安 网站建设/苏州关键词优化软件
  • 医院诊断证明图片在线制作/seo商学院
  • wordpress转静态页面/seo从0到1怎么做
  • 广州互邦物流网络优化建站/最好的搜索引擎
  • 手机可以做网站吗/站长工具seo综合查询5g
  • 网站速度对seo的影响/如何做网络推广人员
  • app 设计网站建设/百度搜索量
  • 郑州电力高等专科学校专业有哪些/济南seo快速霸屏
  • 担路网如何快速做网站/长沙建站工作室
  • 大米网络营销推广方案/seo数据优化教程
  • 新疆生产建设兵团五十团网站/seo推广的公司
  • 做化妆品的一些网站/搜索seo怎么优化
  • 用户浏览网站的习惯/关键词排名推广怎么做
  • 贵州网站建设费用/seo发外链工具