- 浏览: 66217 次
- 性别:
- 来自: 北京
最新评论
文章列表
题目大意:
此题大意就是切棍子,若切长度为10的棍子,就得开销10,切长度为8的棍子,开销为8,问根据给定切的位置,如何切能使开销最小。
比如一根棍子原始长度为10,则给定切的位置为2,4,8,则若第一次在2处切,需要开销10,因为切的时候棍子长度为10,切好后产生两个棍子,长度分别为2和8,第二次切若为4,则开销为8,因为4的位置在长度为8的棍子上,第三次切的位置为8,则开销为6,所以最后总的开销为24。但是不同切法,总开销不同,求最小的开销。
分析:
动态规划问题,存在子问题最优解,使用递归即可。将长度为10的棍子看成一个问题,比如若在4处切 ...
数论同余函数学习——青蛙约会
- 博客分类:
- 算法问题
两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止。可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特征,也没有约定见面的具体位置。不过青蛙们都是很乐观的,它们觉得只要一直朝着某个方向跳下去,总能碰到对方的。但是除非这两只青蛙在同一时间跳到同一点上,不然是永远都不可能碰面的。为了帮助这两只乐观的青蛙,你被要求写一个程序来判断这两只青蛙是否能够碰面,会在什么时候碰面。我们把这两只青蛙分别叫做青蛙A和青蛙B,并且规定纬度线上东经0度处为原点,由东往西为正方向,单位长度1米,这样我们就得到了一条首尾相 ...
C++_STL_bitset的使用
- 博客分类:
- C++
/*
STL 中bitset的使用。
member functions:
· bitset::any : 判断bitset里面是否有1; 有,返回true,否则返回false;
· bitset::count :计算一个bitset里面有几个1, 通过bitset:size()-bitset:count()可以得到有几个0;
· bitset::flip : 取反函数,可以带参数,bitset:flip( pos )表示将第pos位取反,pos从0开始,且表示从bitset右边开始数,可以不带参数,直接bitset:flip()表示将所有位取反;
· bitset::non ...
C++ STL priority_queue的用法
- 博客分类:
- C++
C++中priority_queue的头文件是#include <queue>, priority_queue是调用STL里面的 make_heap(), pop_heap(), push_heap() 算法实现,也算是堆的另外一种形式。
priority_queue 对于基本类型的使用方法相对简单。他的模板声明带有三个参数:
priority_queue<Type, Container, Functional>,其中Type 为数据类型, Container 为保存数据的容器,Functional 为元素比较方式。Container ...
本文主要是讲述如何通过C#实现串口通信:
自己用API写串口通信,可以方便实现自己想要的各种功能,用现成的已经封装好的类库,常见两个串口操作类是JustinIO和SerialStreamReader。介绍JustinIO的使用方法:
1、打开串口: 函数原型:public void Open() 说明:打开事先设置好的端口
using JustinIO;
static JustinIO.CommPort ss_port = new JustinIO.CommPort();
ss_port.PortNum = COM1; //端口号
ss_port.Bau ...
浅谈HTTP中Get与Post的区别
- 博客分类:
- Web开发
转载于:http://www.cnblogs.com/hyddd/archive/2009/03/31/1426026.html
Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作。到这里,大家应该有个大概的了解了,GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。
1.根据HTTP规范,GET用于信息获取,而且应该是安全的和幂等的 ...
细心的朋友会注意到,在卫视节目的参数中,有个FEC,也叫前向纠错(Forward Error Correction)。一些人会奇怪的问:FEC是什么?有什么用?既然数字机无需输入该参数,那么FEC有什么用? 其实,在卫视接收的参数中,FEC是个非常重要的数据。在早 ...
这几天看到了谷歌对中国2014年毕业生出的一道编程题,我自己试着做了一下,还是感觉谷歌出的题都比较有趣,和实际都有一些联系,我将其大概意思翻译成中文,并附上自己写的code。
Prolbem:
对于读一串数字,每个人都有自己的风格。我们的手机号都是11位数,不同的人如何有不同的读法,有人按3-4-4的方式读,有人按3-5-3的方式读,还有人按3-3-5的方式读,平时在问及他人手机号的时候,都会遇到这种情况。举个例子:像手机号15212336667,有人就会说152 1233 6667,有人就会说152 12336 667等。但在英语中,如果你按照1 ...
这是2010年Google Code Jam里的一道问题,我将原题的大概意思翻译成中文了,附上自己的解决过程。
Problem:
在一个NXN的点阵中下棋,棋盘是直立的,所有棋子都会从上往下落,不会悬空在某一位置,棋子分为红色 ...
一、密码学是研究信息系统安全保密和认证的学科,包括密码编码学和密码分析学,前者主要研究对信息的加密,实现信息的隐藏,后者主要研究对密文的破解或者对信息的伪造。
二、密码系统(体制)至少由明文、密文 ...
从19世纪20年代,人们开始发明各种机械加密设备对数据进行加密处理,最为著名的是转轮机和转轮加密算法,转轮密码机在二战期间使用极为广泛。
转轮密码机是由一个输入键盘和一组转轮组成,每个转轮上标有有26个字母,字母的的顺序随意。转轮之间由齿轮进行连接,当一个转轮转动的时候,可以将一个字母转化成另外一个字母。
工作原理:
转轮密码机由多个转轮构成,每个转轮旋转的速度都不一样,比如有3个转轮,分别标号为1,2,3,其中1号转轮转动26个字母后,2号转轮就转动一个字母,当2号转轮转动26个字母后,3号转轮就转动1个字母。因此,当转轮密 ...
一、周期置换密码
周期置换密码是将明文字符串P按固定的长度m进行分组,然后对每组字符串中的字符按照某个密钥重新排位的到密文C。其中密钥S包含分组长度信息。解密时只需得到密钥S的逆置换,把密文重新分组,按照密钥的逆置换对密文的子字符串重新排位就可以得到明文P。
例子:
1、 明文:“State Key Laboratory of Networking and Switching”;
2、加密的密钥:S=(1 5 6 2 3);
3、将明文分为七组,每组6个字符,不足6个的用双方规定好的字符进行填充,比如空格。
...
传统密码学(一)——置换密码之列置换
- 博客分类:
- 信息安全
置换密码(Permutation Cipher)又叫换位密码(Transposition Cipher),其特点就是保持明文的所有字符不变,打乱明文字符的位置和次序。常见的置换密码有两种:列置换密码和周期置换密码。
一、列置换加密
将明文字符P以固定的分组宽度m按行写出,构成m x n的矩阵[M]mxn,不够的按双方约定的字符补充,比如空格字符。然后通过某一交换列的位置次序的到矩阵[Mp]mxn,最后输出举证[Mp]mxn,即得到密文。
比如明文P="Sit down please!",密钥为:,即将第一列放到 ...