fn

POJ 3922A Simple Stone Game

喜你入骨 提交于 2020-02-22 15:15:44
题目链接 A Sample Stone Game   题目大意:给定n,k,表示最初时有n个石头,两个人玩取石子游戏,第一个人第一次可以取1~n-1个石头,后面每个人最多可以拿走前面一个人拿走的个数的K倍,当有一个人可以一次性全部拿走时获胜。问两人都在不失误的情况下,先拿着有没有必胜局势。有的话求他第一次最少该取多少个。 思考过程: 首先讨论k=1的情况 ,我们可以把一个数n(石子的个数),写为二进制下的表示,那先者取走最后一个1,那后者必然不能取走比它高一位的1,那么先拿者一定会赢,当然如果n本来就是2^i形式,那么先拿着当然不能拿走最后一个1,这样的话,石子就会取完了,所以这时先取者必输。举个例子来说 N = 20,他的二进制表示就是 1、10100 先拿者A拿走最后一个1(相当于拿走4个)n变为 2、10000 这时后取者B只能拿m=1,2,3,4个,假如是拿走3个,那么n变为 3、01101 这样A又可以取走最后一个1,。 ... ... 这样继续下去,当这个数n变为1时 00001, 最后一个1一定还是A拿走的,所以A必赢 而其实第2步中,不管B拿走多少个(即不管m是多少m = 1 or 2 or 3 or 4),在她之后的那个人又一定可以取走最后一个1(即取走x = (1<<y)),且这个数x一定小于等于m( 定理1 ),这样的话B永远也不可能取完。   而如果最初

jQuery---文档操作

你。 提交于 2020-02-20 15:10:14
一、相关知识点总结1、CSS .css() - .css("color") -> 获取color css值 - .css("color", "#ff0000") -> 设置值 - .css({"color": "#cccccc", "border": "1px solid #ff0000"}) -> 设置多个值 - .css(["color", "border"]) -> 获取多个值 .offset - 获取相对位置 - 比较的对象是html (窗口) .position - 获取相对已经定位的父标签的位置 - 比较的是最近的那个做过定位的祖先标签 .scrollTop([val]) - 返回顶部的例子 .scrollLeft([val]) 尺寸: height([val|fn]) - 元素的高度 width([val|fn]) - 元素的宽度 innerHeight() - 带padding的高度 innerWidth() - 带padding的宽度 outerHeight([soptions]) - 在innerHeight的基础上再加border的高度 outerWidth([options]) - 在innerHeight的基础上再加border的高度2、文档操作内部插入 A.append(B) 吧B添加到A的后面 A.appendTo(B) 吧A添加到B的后面 A

Rust笔记

假装没事ソ 提交于 2020-02-19 11:48:02
Rust笔记 文章目录 Rust笔记 Rust基本概念 Rust 数据类型 标量类型 复合类型 Rust函数 函数定义 函数参数 函数体 语句与表达式 函数返回值 控制流 if表达式 使用 else if 实现多重条件 在 let 语句中使用 if Rust基本概念 在rust中变量默认是不可变的,如果需要定义可变变量需要使用关键字 mut 进行声明 fn main() { let a = 10; //a变量是一个不可变变量 let mut b = 10; //b变量是一个可变变量 println!("{}",b); println!("{}", a); } 禁止试改不可变变量的值 let a = 10; a = 45; //error :试图修改不可变变量的值 常量 常量类似于不可变变量,但是不可变变量可以通过使用 mut 关键字使变量可变,而常量永远不可变并且不可使用 mut 关键字修饰常量。 const MAX_INT:i32 = 100; println!("{}", MAX_INT); 变量隐藏 我们可以定义一个与之前变量重名的新变量, 而新变量会 隐藏 之前的变量。 Rustacean 们称之为第一个变量被第二个 隐藏 了, 这意味着使用这个变量时会看到第二个值。 可以用相同变量名称来隐藏它自己, 以及重复使用 let 关键字来多次隐藏 fn main(){ let a

java_爬虫_从腾讯视频播放界面爬取视频真实地址

会有一股神秘感。 提交于 2020-02-19 01:56:19
由于想在微信公众号里爬一点儿考研的视频 花了差不多一天的时间把这个爬虫做好(其实也不算爬虫吧,就算个能批量处理的地址解析器,半个爬虫) 不多说,进正题 (本文适合有java基础的同学,没基础的用客户端缓存然后格式转换吧) 所需条件: 1.一台联网的有java环境的电脑 2.耐心 访问后台接口网址: http://vv.video.qq.com/getinfo(低清的只要这一个就好了) http://vv.video.qq.com/getkey(高清的需要访问这个) 原理(获取低清视频,先把原理打通,高清后期有时间会更): 步骤一: 获取你想要下载的视频的腾讯视频页面地址(这个很容易啦,就不赘述) 此处以:https://v.qq.com/x/page/f08302y6rof.html为例 步骤二: 获取视频vid 此处的vid为f08302y6rof,就是上边儿网址上那一串长长的东西 步骤三: 用获取到的视频的vid替换下面红色标明的vid(这一步是访问后台接口得到json报文) http://vv.video.qq.com/getinfo?vids= f08302y6rof &platform=101001&charge=0&otype=json&defn=shd 然后访问 步骤四: 在页面返回浏览器的json报文中,找到fn 和 fvkey 我这边儿传回的报文如下

JS事件

我的梦境 提交于 2020-02-17 14:13:25
1.事件绑定 < button id = "btn" > 测试 < / button > < script > var btn = document . getElementById ( "btn" ) btn . addEventListener ( "click" , event => { alert ( event . target ) } ) < / script > ` 2.事件冒泡 < body > < div id = "div1" > < p > 这是p1 < / p > < p > 这是p2 < / p > < p > 这是p3 < / p > < p > 这是p4 < / p > < / div > < / body > < script > let body = document . body ; body . addEventListener ( "click" , event => { console . log ( "body click" ) ; console . log ( event . target ) ; } ) let div1 = document . getElementById ( "div1" ) ; div1 . addEventListener ( "click" , event => { event .

python装饰器

六眼飞鱼酱① 提交于 2020-02-17 00:06:44
装饰器:给已有函数增加额外功能的函数,它本质上就是一个闭包函数。 在不改变已有函数源代码及调用方式的前提下,对已有函数进行功能的扩展。 特点: 不修改已有函数的源代码 不修改已有函数的调用方式 给已有函数增加额外的功能 # 装饰器的基本雏形 # def decorator(fn): # fn:目标函数. # def inner(): # print('''执行函数之前''') # fn() # 执行被装饰的函数 # print('''执行函数之后''') # return inner # 添加一个登录验证的功能 def check ( fn ) : def inner ( ) : print ( "请先登录...." ) fn ( ) return inner def comment ( ) : print ( "发表评论" ) def check_out ( fn ) : def inner ( ) : # 先执行检测代码 print ( "检测用户是否合法登录........" ) fn ( ) return inner # 语法糖写法 # 修饰 @check_out 等价于 work = check_out(work) @check_out def work ( ) : print ( "正常工作" ) work ( ) # 使用装饰器来装饰函数 comment =

${fn: }函数

旧时模样 提交于 2020-02-16 18:34:36
函数名 函数说明 使用举例 fn:contains 判断字符串是否包含另外一个字符串 <c:if test="${fn:contains(name, searchString)}"> fn:containsIgnoreCase 判断字符串是否包含另外一个字符串(大小写无关) <c:if test="${fn:containsIgnoreCase(name, searchString)}"> fn:endsWith 判断字符串是否以另外字符串结束 <c:if test="${fn:endsWith(filename, ".txt")}"> fn:escapeXml 把一些字符转成XML表示,例如 <字符应该转为< ${fn:escapeXml(param:info)} fn:indexOf 子字符串在母字符串中出现的位置 ${fn:indexOf(name, "-")} fn:join 将数组中的数据联合成一个新字符串,并使用指定字符格开 ${fn:join(array, ";")} fn:length 获取字符串的长度 , 或者数组的大小 ${fn:length(shoppingCart.products)} fn:replace 替换 字符串中指定的字符 ${fn:replace(text, "-", "&#149;")} fn:split 把字符串按照指定字符切分 ${fn

js 跨浏览操作

生来就可爱ヽ(ⅴ<●) 提交于 2020-02-16 01:49:38
/* 跨浏览器添加事件绑定 obj : 需要绑定js时间的对象 type: 欲绑定的事件类型,如:click ,mounseover 等事件 不需要添加on fn : 触发的脚本 */ function addEvent(obj,type,fn){ if(typeof obj.addEventListener !='undefined'){ //W3C obj.addEventListener(type,fn,false) ; //false表示不捕获冒泡 }else{ //IE IE提供的添加事件绑定存在问题 //为了便于删除事件 特将对象绑定的事件都绑定在该对象本身上,删除的时候同样传递一个该对象即可 if(!obj.events[type]){ obj.events[type] = [] ; //创建一个存放事件处理函数的数组 //把第一次的事件处理函数先储存到第一个位置上 if(obj["on"+type]){ obj.events[type][0] = fn; } }else{ //同一个注册函数进行屏蔽,不添加到计数器中 if (addEvent.equal(obj.events[type], fn)) return false; } //从第二次开始我们用事件计数器来存储 obj.events[type][addEvent.ID++] = fn; //执行事件处理函数

jQuery中$.fn的用法示例介绍

╄→гoц情女王★ 提交于 2020-02-15 15:18:32
$.fn是指jquery的命名空间,加上fn上的方法及属性,会对jquery实例每一个有效。 如扩展$.fn.abc(),即$.fn.abc()是对jquery扩展了一个abc方法,那么后面你的每一个jquery实例都可以引用这个方法了. 那么你可以这样子: $("#div").abc(); jQuery为开发插件提拱了两个方法,分别是: jQuery.extend(object);为扩展jQuery类本身.为类添加新的方法。 jQuery.fn.extend(object);给jQuery对象添加方法。 fn是什么东西呢。查看jQuery代码,就不难发现。 代码如下: jQuery.fn = jQuery.prototype ={    init: function( selector, context ){//....     //...... }; 原来 jQuery.fn =jQuery.prototype.对prototype肯定不会陌生啦。 jQuery便是一个封装得非常好的类,比如我们用语句 $("#btn1") 会生成一个 jQuery类的实例。 jQuery.extend(object); 为jQuery类添加添加类方法,可以理解为添加静态方法。如: $.extend({   add:function(a,b){returna+b;} }); 以上便为

【蓝桥杯】Fibonacci数列衍生问题

拈花ヽ惹草 提交于 2020-02-15 08:42:28
问题描述 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。 当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。 输入格式 输入包含一个整数n。 输出格式 输出一行,包含一个整数,表示Fn除以10007的余数。 说明:在本题中,答案是要求Fn除以10007的余数,因此我们只要能算出这个余数即可,而不需要先计算出Fn的准确值,再将计算的结果除以10007取余数,直接计算余数往往比先算出原数再取余简单。 样例输入 10 样例输出 55 样例输入 22 样例输出 7704 # include <stdio.h> int main ( ) { int i ; long n ; scanf ( "%d" , & n ) ; int f [ n ] ; f [ 1 ] = 1 ; f [ 2 ] = 1 ; if ( n > 2 ) { for ( i = 3 ; i <= n ; i ++ ) f [ i ] = ( f [ i - 1 ] + f [ i - 2 ] ) % 10007 ; printf ( "%d" , f [ n ] ) ; } else if ( n == 1 || n == 2 ) printf ( "1" ) ; return 0 ; } 来源: CSDN 作者: swj_on_the_way 链接: