135*50*3的简单算法

1、分组将需要加密的文件转为2進制,然后分组为512*K+448(K为任意整数不够用一个“1”和多个“0”补齐),再加上64位的文件长度信息构成512*(K+1)的分组 

2、迭代运算这里有一个參数(256位)参与运算,初始值V(0)(文档中叫做IV)迭代一次之后得到V(1),后面依次迭代得到V(1)、V(2)、V(3)……V(K)、V(K+1),V(K+1)也就是最终的杂凑值 

二、sm3在芯片中的实際使用方法 
芯片中有sm3函数的入口每次只能输入8个字节(64位)的16进制数,所以要把文件拆分成N*8字节并转为16进制,需要执行sm3函数N次 
前面N-1次和最後一次执行函数所用的报文不同前面N-1次中报文的p1=01(没有返回杂凑值,但是函数中记录下迭代中间结果作为下一次迭代输入,不输出)最后一次报文的p1=02,(结合上面迭代中间值输出最终杂凑值)


· 把复杂的事情简单说给你听

你對这个回答的评价是

下载百度知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案

135.分发糖果(贪心算法)           难度:困难

老师想给孩子们分发糖果有 N 个孩子站成了一条直线,老师会根据每个孩子的表现预先给他们评分。

你需要按照以下要求帮助老师给这些孩子分发糖果:

每个孩子至少分配到 1 个糖果。
评分更高的孩子必须比他两侧的邻位孩子获得更多的糖果
那么这样下来,老师至少需要准备多少颗糖果呢

这里的贪心策略是,如果小孩评分不比两边的高则只给一个糖果。
1.从左向右判断循环┅次得出糖果分配方案
2.从右向左判断循环一次,得出糖果分配方案
3.对于每个小孩到底给几个糖果取两个方案的最大值
两次循环的原因:假设只从左向右循环一次,那么肯定满足右边比左边评分高的小孩多得糖果但是左边比右边评分高的话,容易判断成都给一个糖果礻意图如下:


我要回帖

 

随机推荐