首页 > 其他分享 >P1833 樱花

P1833 樱花

时间:2024-04-05 21:14:28浏览次数:23  
标签:樱花 now int P1833 te1 include id dp

题目:
链接:https://www.luogu.com.cn/problem/P1833
知识点:二进制优化,完全背包
emm怎么说呢,还是被卡内存,所以自顶而下编程不好!还是用滚动数组好点
代码:

#include<iostream>
#include<vector>
#include<algorithm>
#include<math.h>
#include<sstream>
#include<string>
#include<string.h>
#include<iomanip>
#include<stdlib.h>
#include<map>
#include<queue>
#include<limits.h>
#include<climits>
#include<fstream>
#include<stack>
typedef unsigned long long ll;
using namespace std;

const int N = 1e5+10;

int t[N], c[N], p[N];
int dp[2][1010];

int main()
{
	int times;
	int n;
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	int te1, te2, ts1, ts2;
	char cc;
	 cin >> te1 >> cc >> te2 >> ts1 >> cc >> ts2 >>n;
	times = 60 * (ts1 - te1) + ts2 - te2;
	
	ll id = 1;
	//在线进制拆分
	for (int i = 1; i <= n; i++)
	{
		cin >> t[id] >> c[id] >> p[id];
		if (p[id] > 1)
		{
			int timesa = p[id];
			int oct = t[id];
			int occ = c[id];
			for (int y = 1; y <= timesa; y <<= 1)
			{
				t[id] = y * oct;
				c[id] = y * occ;
				p[id] = y;
				timesa -= y;
				id++;
			}
			if (timesa)
			{
				t[id] = timesa * oct;
				c[id] = timesa * occ;
				p[id] = timesa;
				id++;
			}
		}
		else if (p[id] == 0)
		{
			ll timesa = times;
			ll oct = t[id];
			ll occ = c[id];
			for (int y = 1; y <= timesa; y <<= 1)
			{
				t[id] = y * oct;
				c[id] = y * occ;
				p[id] = y;
				timesa -= y;
				id++;
			}
			if (timesa)
			{
				t[id] = timesa * oct;
				c[id] = timesa * occ;
				p[id] = timesa;
				id++;
			}
		}
		else id++;
	}
	id--;
	int now =0;
    //背包
	for (int i = 1; i <= id; i++)
	{
	    now=1-now;
		for (int j = 0; j <= times; j++)
			if (t[i] > j)dp[now][j] = dp[1-now][j];
			else dp[now][j] = max(dp[1-now][j], dp[1-now][j - t[i]] + c[i]);
	}
	cout << dp[now][times];
	return 0;
}

标签:樱花,now,int,P1833,te1,include,id,dp
From: https://www.cnblogs.com/zzzsacmblog/p/18116175

相关文章

  • 樱花,还有你
    呐,你知道吗?听说樱花飘落的速度是秒速五厘米哦。所以,再等等吧!三月,武汉大学,樱花就快来了呢。你一定会陪我一起看吧,在酥软的阳光下,我会悄悄牵起你的手,感受你熟悉的温度,糟糕,脸儿也不小心被粉嫩嫩的樱花映红的呢。对了,我最近常望着那颗在风中柔柔的樱花树出神,想你还是盼着我的吧。到......
  • 浪漫3D樱花漫天飞舞特效+个人引导页特效+爱心特效
    1.源码描述使用html+css+js制作浪漫3D樱花漫天飞舞效果非常炫酷,非常美丽的HTML53D樱花漫天飞舞效果js代码,整个屏幕飘满了樱花,而且姿态各异,近大远小。在最新版火狐和谷歌皆可以看到效果,但是注意可能会比较占用CPU哦!作为网站的背景也是非常漂亮的。2.源码技术html5+cs......
  • 微风起,樱花落
    本不该在机房,但是昨天晚二让写景抒情散文升格。全班只有我一人,写成议论文。因为三年都是在书桌和机房前度过的,去过一次大唐不夜城,但仍是纷纷扰扰的人群。对于我们这种只有不断学习不断战斗才能找到自己存在意义,只有活在荣誉中才能清醒的疯子而言,又有什么去寄托自己的心灵?二次元,转......
  • Python 之 漫天樱花表白小程序
    漫天樱花表白小程序:“樱花将灿,冬尽风暖“一樱花和你我都想念~(内含多份源码)......
  • [Violet5]樱花
    [Violet5]樱花题解题意概括:题目意思很明白,输入一个\(int\)类型整数\(n\)(\(1<=n<=10^6\))求方程\(\frac{1}{x}+\frac{1}{y}=\frac{1}{n!}\)(\(n!\)表示\(n\)的阶乘,即\(n!=1\times2\times3\times······\timesn\))解的个数题目分析:肯定是一个数论题(废话),题......
  • java绘制樱花
    如何用Java绘制樱花作为一名经验丰富的开发者,我很高兴能够教会你如何用Java绘制樱花。在本文中,我将向你展示实现这个目标的步骤,并提供每一步所需的代码和注释。整体流程绘制樱花的过程可以分为以下几个步骤:步骤描述1创建一个绘图区域2绘制树干3绘制花瓣4......
  • P1833 樱花 题解
    二进制拆分做法:把每一个物品根据2的多少次方拆分,因为任何数都可以转化为二进制数核心思想:把每一个物品拆成很多个,分别计算价值和所需时间,再转化为01背包求解最后一点:完全背包可以把他的空间记为999999,不要太大,一般百万就足够了还有一点:cin和scanf不可以混用代码#include<bit......
  • 爬取 2 万多张 Flickr 图片,莫纳什大学复现 10 年间日本樱花开放的时空特征
    内容一览:近年来,全球气候变化形势严峻,由此引发的蝴蝶效应,正深刻地影响着人类和大自然。在这一背景下,收集数百甚至数千公里范围内开花模式的数据,了解气候变化如何对开花植物产生影响,成为近年来生态研究的重要课题之一。但传统的方法通常需要耗费大量经费,且需要较长的时间进行采样调查......
  • 樱花
    樱花给定一个整数$n$,求有多少正整数数对$(x,y)$满足$\frac{1}{x}+\frac{1}{y}=\frac{1}{n!}$。输入格式一个整数$n$。输出格式一个整数,表示满足条件的数对数量。......
  • python实现樱花动漫自动追番功能
    源码地址https://gitee.com/kidtic/autodmhy准备1.网络代理2.比特彗星打开远程下载功能3.按照以下文件目录设置好dmhyKeyWord.txt文件xxx动漫1/dmhyKey......