背包旅行

回溯算法――0-1背包

匿名 (未验证) 提交于 2019-12-02 23:55:01
回溯算法的思想:每到一个十字路口A,就选择一条路走a,如果a走不通,则回到十字路口A,选择其他bcd之一,进行走。若依然走不通,则退回到A之前的十字路口,重复上面的操作。 利用回溯算法解决的经典问题:数独、八皇后、0-1背包、图的着色、旅行商问题、全排列等等。 0-1背包问题 #include <iostream> #define MAX_WEIGHT 100 using namespace std ; // arr 待装包的物品重量, // curweight 当前i物品的重量 // i 当前即将放入的i物品 // num 可用物品的数量 // bagweight 当前背包的总重量 void fill ( int * arr , int curweight , int i , int num , int & bagweight ) { if ( curweight == MAX_WEIGHT || i == num ) // 装满,或者考察完所有物品 { if ( curweight > bagweight ) { bagweight = curweight ; // 记录历史最大装载量 // cout << bagweight << "***" << endl << endl; } return ; } fill ( arr , curweight , i + 1 , num

回溯算法——0-1背包

北城以北 提交于 2019-11-28 17:57:59
回溯算法的思想:每到一个十字路口A,就选择一条路走a,如果a走不通,则回到十字路口A,选择其他bcd之一,进行走。若依然走不通,则退回到A之前的十字路口,重复上面的操作。 利用回溯算法解决的经典问题:数独、八皇后、0-1背包、图的着色、旅行商问题、全排列等等。 0-1背包问题 #include<iostream> #define MAX_WEIGHT 100 using namespace std; // arr 待装包的物品重量, // curweight 当前i物品的重量 // i 当前即将放入的i物品 // num 可用物品的数量 // bagweight 当前背包的总重量 void fill(int *arr, int curweight, int i, int num, int &bagweight) { if(curweight == MAX_WEIGHT || i == num) // 装满,或者考察完所有物品 { if(curweight > bagweight) { bagweight = curweight; // 记录历史最大装载量 // cout << bagweight << "***" << endl << endl; } return; } fill(arr, curweight, i + 1, num, bagweight); // 不选择i物品

python定向爬虫实例(一)

∥☆過路亽.° 提交于 2019-11-26 03:59:23
功能描述:爬取当当网的某一商品的信息,并在屏幕输出其价格、商品名称 程序设计: 获取上商品页面的HTML文本 解析HTML文本你将商品信息存在列表中 将商品信息输出在屏幕上 import requests import bs4 from bs4 import BeautifulSoup def getHTMLText(url): try: r=requests.get(url) r.raise_for_status() r.encoding=r.apparent_encoding return r.text except: return "" def parseHTML(demo,sLt): soup=BeautifulSoup(demo,"html.parser") for li in soup.find('ul',attrs=['bigimg','cloth_shoplist']).children: try: if isinstance(li,bs4.element.Tag): sLt.append([li.find('a').attrs.get('title'),li.find('span','price_n').string]) except: continue def printGoodsList(sLt): tpt='{0:3}\t\t{1:^3}\t\t{2:{3}