P3052 [USACO12MAR] Cows in a Skyscraper G

news/2025/2/21 3:58:10/

网址如下:

P3052 [USACO12MAR] Cows in a Skyscraper G - 洛谷

(题意翻译中的wi改成ci)

好久没写博客了,寒假加入校队,高强度刷题,感觉懒得写,寒假前倒是写了一个关于虚拟机共用宿主机的VPN的博客的,结果没过审,只能说对翻墙管的是真严啊

后面寒假了就只顾着爽玩了,没怎么刷题(中途还被我姐拉去写pyhon搞数据,算是增长经验)

关于这道题:

刚开始直接用贪心干的,结果贪心思路有问题,加上使用STL过度,直接TLE+WA了:

#include<cstdio>
#include<vector>
#include<algorithm>
using namespace std;bool cmp(const int &e, const int &val){return e >= val;}int main(void)
{vector<int> vec;int n, w; scanf("%d%d", &n, &w);for(int i = 0; i < n; i++){int val; scanf("%d", &val);vec.push_back(val);}sort(vec.begin(), vec.end(), cmp);int cnt = 0, val = 0;while(!vec.empty()){auto it = lower_bound(vec.begin(), vec.end(), val, cmp);if(it == vec.end()){cnt++; val = w;}else{val = val - *it; vec.erase(it);}}printf("%d", cnt);return 0;
}

后面是改成二分查找答案:

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;const int maxn = 20;
int c[maxn], n, w;
int u[maxn];bool cmp(const int &e, const int &val){return e >= val;}
bool dfs(int cur, int d){if(cur == n) return true;for(int i = 0; i < d; i++)if(u[i] + c[cur] <= w){u[i] += c[cur];if(dfs(cur + 1, d)) return true;u[i] -= c[cur];}return false;
}int main(void)
{scanf("%d%d", &n, &w);int l = 0, r = n;for(int i = 0; i < n; i++){scanf("%d", &c[i]); l += c[i];}sort(c, c + n, cmp);l = l / w;while(l < r){int mid = (l + r) >> 1; memset(u, 0, sizeof(u));if(dfs(0, mid)) r = mid; else l = mid + 1;}printf("%d", l);return 0;
}

这道题也可以用状压dp做,但是我还不太会


http://www.ppmy.cn/news/1573793.html

相关文章

kamailio中的PV,PV Headers,App Lua,Dialog,UUID,Dianplan等模块的讲解

课程总结 今天的课程围绕 Kamailio模块 和 SIP服务器类型 展开&#xff0c;详细讲解了多个核心模块的功能、参数和使用方法&#xff0c;并深入探讨了SIP中B2BUA和Proxy Server的区别与应用场景。以下是今天课程的主要内容总结&#xff1a; 今日主题 Kamailio模块与SIP服务器类…

echarts柱状图属性

echarts柱状图属性 legend 组件的 itemGap 属性可以用来设置图例项之间的间隔 问题&#xff1a;翻译成英文后图例项之间重叠&#xff01; 解决&#xff1a;通过设置legend 组件的 itemGap 属性 解决后的效果&#xff1a;

uniapp中@input输入事件在修改值只有第一次有效的问题解决

在uniapp中使用输入框&#xff0c;要求输入不超过7个字&#xff0c;所以需要监听输入事件&#xff0c;当每次输入文字的时候&#xff0c;就把输入的值截断&#xff0c;取前7个值。但是在input事件中&#xff0c;重新赋值的值发生了变化&#xff0c;但是页面上的还是没有变&…

mac os设置jdk版本

打开环境变量配置文件 sudo vim ~/.bash_profile 设置不同的jdk版本路径 # 设置JAVA_HOME为jdk17路径 export JAVA_HOME$(/usr/libexec/java_home -v 17)# 设置JAVA_HOME为jdk8路径 export JAVA_HOME$(/usr/libexec/java_home -v 1.8) 设置环境变量 # 将jdk加入到环境变量…

Pytorch实现之粒子群优化算法在GAN中的应用

简介 简介:主要是采用了粒子群优化(PSO)算法来优化GAN的一个训练。PSO是一种是一种基于种群的随机优化技术。这种优化技术是通过粒子群进行的,粒子群在每次迭代中都会更新自己。对于给定的目标函数,这种方法利用一个搜索空间,在那里粒子群移动,找到所需的全局最小值。这…

数据仓库与数据湖的协同工作:智慧数据管理的双引擎

数据仓库与数据湖的协同工作:智慧数据管理的双引擎 引言 在数据驱动的今天,企业和组织收集和存储的数据量正以惊人的速度增长。如何高效管理和利用这些数据,成为了决策者和技术专家的共同难题。为了解决这一问题,数据仓库(Data Warehouse)和数据湖(Data Lake)这两种技…

LeetCodeHot100(普通数组和矩阵篇)

目录 普通数组&矩阵最大子数组和题目代码 合并区间题目代码 轮转数组题目代码 除自身以外数组的乘积题目代码 缺失的第一个正数题目代码 矩阵置零题目代码 螺旋矩阵题目代码 旋转图像题目代码 搜索二维矩阵 II题目代码 后续内容持续更新~~~ 普通数组&矩阵 最大子数组和…

windows配置永久路由

前言 在实际应用场景中&#xff0c;遇到了这样一个需求&#xff0c;高斯数据库在生产内网中&#xff0c;我们使用nginx将高斯数据库服务代理出来&#xff0c;并且配置了ip限制&#xff0c;只能使用公司的外网ip进行访问&#xff0c;由于连接上公司VPN以后并不能成功访问数据库…