MrZigZag

DON'T PANIC!


  • 首页

  • 分类

  • 标签

  • 归档

  • 关于

Python学习笔记1

发表于 2016-04-07   |   分类于 学习笔记   |  

Python学习笔记–0.Python基础

0.Unix下直接运行.py文件

在文件开头加入#!/usr/bin/env python,然后在命令行中修改权限,赋予其可执行的权限。$ chmod a+x hello.py

1.输入输出

  • 命令行输入直接用raw_input(),括号里可以放提示语。 得到的是一个字符串,要转换成其他数据类型要用强制类型转换。如int(raw_input())
  • 命令行输入可以用print,后面可以带各种格式的数据,连接用,,但是需要注意,每次遇到,均会输出一个空格。

    >>>name = raw_input('please input your name:')
    >>>print 'User name:', name
    User name: MrZigZag
    

2.语法基础

阅读全文 »

背包问题

发表于 2016-04-02   |   分类于 ACM   |  

01背包问题

问题描述

有N件物体,体积为v1、v2…vN,价值为w1、w2…wN。
现在有一个容量为V的包,从N件物体中选择若干件放进包里,使得包里物体的总价值最大。

基本思路

利用动态规划,建立(N+1)*(V+1)的矩阵F[N+1][V+1],F[i][j]表示在前i个物体中取若干个放入剩余容量为j的背包得到的最大的价值。于是有:

1
F[i][j] = max(F[i-1][j], F[i-1][j-v[i]]+w[i])

需要注意的是,矩阵第一行第一列为0,表示没有物体或者没有剩余空间时价值都是0。实际上F[i-1][j]表示没有放进第i个物体,F[i-1][j-v[i]]+w[i]表示放进了第i个物体时的价值。

阅读全文 »
123
李松江

李松江

So long and thanks for all the fish.

16 日志
4 分类
6 标签
RSS
知乎 GitHub 微博 LabProfile
© 2016 李松江
由 Hexo 强力驱动
主题 - NexT.Pisces