uva301重做,一次ac!

好久没做算法题了,闲来无事,就把过去没ac的题拿出来做做,没看原来的代码,一次ac。现在看看原来的代码,发现思路太窄了。当时肯定做了很久,这东西有时候就得跳出来换个思路再来。

附上ac代码:

#include<iostream>
#include<cstring>
using namespace std;

int n,m,ord,maxe=0,earning=0;
int order[25][3];

void dfs(int trans[],int h){
	// went through all orders and count total earnings
	if (h==ord){
		earning = 0;
		for (int i=0;i<m;i++){
			earning += trans[i];
		}
		if (earning>maxe) maxe=earning;
		return;
	}
	// accept this order
	bool ok = true;
	int tmptrans[7];
	memcpy(tmptrans,trans,sizeof(tmptrans));
	for (int i=order[h][0];i<order[h][1];i++){
		tmptrans[i] += order[h][2];
		if (tmptrans[i]>n){
			// this order cannot be accepted
			ok = false;
			break;
		}
	}
	if (ok) dfs(tmptrans,h+1);
	// reject order h
	dfs(trans,h+1);

}
int main(){
	while(cin>>n>>m>>ord&&(n||m||ord)){
		maxe=earning=0;
		memset(order,0,sizeof(order));
		for (int i=0;i<ord;i++){
			cin>>order[i][0]>>order[i][1]>>order[i][2];

		}
		int t[7];
		memset(t,0,sizeof(t));
		dfs(t,0);
		cout<<maxe<<endl;

	}
}

uva301重做,一次ac!,布布扣,bubuko.com

时间: 2024-10-05 20:39:04

uva301重做,一次ac!的相关文章

诬柯司戎苡xwkx05na97tu1llqac

http://www.qiushibaike.com/tag/%e7%a3%90%e7%9f%b3%e6%b0%b0%e5%8c%96%e9%92%a0%e5%93%aa%e9%87%8c%e6%9c%89%e5%8d%96%2b%ef%bd%91%ef%bc%92%ef%bc%98%ef%bc%95%ef%bc%98%ef%bc%92%ef%bc%99%ef%bc%91%ef%bc%92%ef%bc%90.http://www.gxxc.gov.cn/Town/TownDetails?id=9

斡密勐芡眼n16mt3esra161fqo

http://www.gxxc.gov.cn/Town/TownDetails?id=94210&town=%e5%bb%ba%e5%be%b7%e5%93%aa%e9%87%8c%e6%9c%89%e6%b0%b0%e5%8c%96%e9%92%be%e4%b9%b0%2b%ef%bd%91Q%e2%92%89%e2%92%8f%e2%92%8c%e2%92%8f%e2%92%89%e2%92%90%e2%92%88%e2%92%89O.http://www.gxxc.gov.cn/Town/

[C#] 逆袭——自制日刷千题的AC自动机攻克HDU OJ

前言 做过杭电.浙大或是北大等ACM题库的人一定对“刷题”不陌生,以杭电OJ为例:首先打开首页(http://acm.hdu.edu.cn/),然后登陆,接着找到“Online Exercise”下的“Problem Archive”,然后从众多题目中选择一个进行读题.构思.编程.然后提交.最后查看题解状态,如果AC了表示这一题被攻克了,否则就要重做了~一般情况下,“刷题”要求精神高度集中且经验丰富,否则很难成功AC,有时候甚至做一题要浪费半天的时间!(有时网速卡了,比抢火车票还要急!) 楼主在

暑假集训day9补充(AC自动机)

推荐网站http://blog.csdn.net/niushuai666/article/details/7002823 AC自动机嘛,此AC(aho-corasick)非彼AC(Accepted). 我也不是很会解释 有一题是必须打的hdu2222. #include<iostream> #include<cstdio> #include<cstring> #include<queue> using namespace std; const int mn=

ac自动机基础模板(hdu2222)

In the modern time, Search engine came into the life of everybody like Google, Baidu, etc. Wiskey also wants to bring this feature to his image retrieval system. Every image have a long description, when users type some keywords to find the image, th

Linux DHCP通过OPTION43为H3C的AP下发AC地址

对于DHCP服务,可以在很多平台上进行设置.那么这里我们就主要讲解一下在Linux DHCP服务器上通过option 43实现H3C的AP自动联系AC注册的相关内容.原来的DHCP Server是放在交换机上的,但因为近期准备改动一下网络拓扑,所以要把DHCP Server迁移,操作系统用的是RHEL5.3,DHCP版本3.05 打H3C的800电话,二线工程师说没有在Linux下的DHCP配过,要我去看文档,文档里有交换机做dhcp server和windows做dhcp server的配置实

【游戏设计模式】之二 实现撤消重做、回放系统的神器:命令模式

本系列文章由@浅墨_毛星云 出品,转载请注明出处.   文章链接:http://blog.csdn.net/poem_qianmo/article/details/52663057 作者:毛星云(浅墨)    微博:http://weibo.com/u/1723155442 这篇文章将与大家一起探索游戏开发中命令模式的用法. 命令模式的成名应用是实现诸如撤消,重做,回放,时间倒流之类的功能.如果你想知道<Dota2>中的观战系统.<魔兽争霸3>中的录像系统.<守望先锋>

HDU 2825 Wireless Password AC自动机+dp

训练赛第二场的I题,上完体育课回来就把这题过了,今天训练赛rank1了,还把大大队虐了,而且我还过了这道题 (虽然我也就过了这道题...),第一次在比赛中手写AC自动机还带dp的,心情大好. 给一个字符串集合,求包含该集合超过K个字符的,长度为L的字符串的个数. 显然是在AC自动机上跑dp,设dp[u][L][k]表示当前在结点u,还要走L步,当前状态为k的个数.一开始第三维表示的是包含k个字符串,但是题目要求不含重复的,那就只能状压了.转移为dp[u][L][k]+=dp[v][L-1][nk

LightOJ 1427 -Repository(ac自动机)

题意: 求每个模式串在母串中出现的次数 #include <map> #include <set> #include <list> #include <cmath> #include <queue> #include <stack> #include <cstdio> #include <vector> #include <string> #include <cctype> #inclu