poj 2393 贪心 思维

点击打开链接

#include 
#include 
using namespace std;
const int M = 11000;
struct Node{
	int cost;
	int y;
}node[M];
int n,s;
long long ans=0; 
int main()
{
	int Min;//当前 1 unit 的最小价钱 
	cin>>n>>s; //保存1 unit per week 要 s元 
	for(int i=0;i>node[i].cost>>node[i].y;
	 	if(i==0)
		{
			Min=node[i].cost;
			ans+=node[i].cost*node[i].y; //第一月只能由本月来生产	
		}											
		
		
			//不存在一部分其他月生产 一部分本月生产
			// 生产每单位价钱不同 肯定用价钱最少的那个月生产 
			
		else //当前月生产的price 要么是本月的 要么是前面月份中的某一月份 price+k*s 
		{
			Min=min(node[i].cost,Min+s);  //    s有累加 
			ans+=Min*node[i].y; 
		} 
	}
	cout<


你可能感兴趣的:(Binary,Search,&&,Greedy)