num

1321棋盘

无人久伴 提交于 2020-03-24 15:03:44
// 1321.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include<iostream>using namespace std;char q[10][10];bool row_used[10];int count,num_p;int k,n;void DFS(int i){ if(num_p==k) { count++; return; } if(i>n) return; for(int j=1;j<=n;j++) { if(q[i][j]=='#'&&!row_used[j]) { row_used[j]=true; num_p++; DFS(i+1); row_used[j]=false; num_p--; } } DFS(i+1);//i行不放棋子}int main(){ while(cin>>n>>k) { count=0; num_p=0; memset(row_used,0,10*sizeof(row_used[0])); if(n==-1&&k==-1) break; for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) { cin>>q[i][j]; } DFS(1); cout<<count<<endl; } system("pause"); return 0;} 来源: https:

mysql查询优化笔记

与世无争的帅哥 提交于 2020-03-24 14:20:08
1、对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2、应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:   select id from t where num is null   可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:   select id from t where num=0 3、应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。 4、应尽量避免在 where 子句中使用 or 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,如:   select id from t where num=10 or num=20   可以这样查询:   select id from t where num=10   union all   select id from t where num=20 5、in 和 not in 也要慎用,否则会导致全表扫描,如:   select id from t where num in(1,2,3)   对于连续的数值,能用 between 就不要用 in 了:   select id from t where num between 1 and 3 6

Mongoose 两个表关联查询aggregate 以及 Mongoose中获取ObjectId

半世苍凉 提交于 2020-03-24 11:50:23
Mongoose 两个表关联查询aggregate 通常两个表关联查询的时候,是一种一对多的关系,比如订单与订单详情就是一对多的关系,一个订单下面有多个商品 数据模拟 首先我们先将数据模拟出来,先选择数据库 use eggcms db.order.insert({"order_id":"1","uid":10,"trade_no":"111","all_price":100,"all_num":2}) db.order.insert({"order_id":"2","uid":7,"trade_no":"222","all_price":90,"all_num":2}) db.order.insert({"order_id":"3","uid":9,"trade_no":"333","all_price":20,"all_num":6}) db.order_item.insert({"order_id":"1","title":"商品鼠标 1","price":50,num:1}) db.order_item.insert({"order_id":"1","title":"商品键盘 2","price":50,num:1}) db.order_item.insert({"order_id":"1","title":"商品键盘 3","price":0,num:1}) db

收藏的一些javascript片段

a 夏天 提交于 2020-03-24 09:38:21
学习js也很有一段时间,收集了一些js的片段。特地整理排版了一下,以一个js初学者的视界来分析注释了这些代码段,暂且不去讨论它 的性能和优化问题,相信会对一些初学者有用。第一次发文,定许多纰漏和不足的地方,希望可以交流和学习。 1 javascript动态加载--2 获取字符串的字节长度--3 DOM加载完即执行(有别于onload-页面的一切都加载完后执行)--4获取CSS属性--5 数组检测--6 继承--7 简单事件绑定--8 浏览器判断--9 阻止事件的默认行为--10 数组合并去重--11 将arguments转化为数组--12 数组去重--13 根据生日算年龄--14 获取某个节点下类名为classname的所有元素--15 object.crate的用法--16 获取事件的目标对象--17 获取事件发生时按键状态--18 dom操作--19 阻止事件冒泡--20 元素位置计算--21 元素显示效果--22 闭包的用例--23 实现字符串长度截取--24 获取域名的主机--26 清楚空格--27 替换全部--28 html文档中转义和解码字符--29 判断是否为数字类型--30 设置cookie--31 获取指定cookie--32 加入收藏夹--33 判断IE6--34 跨域解决方法--35 加载样式文件--36 今天是星期几--38 返回按id检索的元素对象--39

[Leetcode Weekly Contest]181

天大地大妈咪最大 提交于 2020-03-24 08:41:29
链接: LeetCode [Leetcode]1389. 按既定顺序创建目标数组 给你两个整数数组 nums 和 index。你需要按照以下规则创建目标数组: 目标数组 target 最初为空。 按从左到右的顺序依次读取 nums[i] 和 index[i],在 target 数组中的下标 index[i] 处插入值 nums[i] 。 重复上一步,直到在 nums 和 index 中都没有要读取的元素。 请你返回目标数组。 题目保证数字插入位置总是存在。 直接insert即可,如下。 class Solution: def createTargetArray(self, nums: List[int], index: List[int]) -> List[int]: res = [] for i in range(len(index)): res.insert(index[i],nums[i]) return res [Leetcode]1390. 四因数 给你一个整数数组 nums,请你返回该数组中恰有四个因数的这些整数的各因数之和。 如果数组中不存在满足题意的整数,则返回 0 。 示例: 输入: \(nums = [21,4,7]\) 输出:32 解释: 21 有 4 个因数:1, 3, 7, 21 4 有 3 个因数:1, 2, 4 7 有 2 个因数:1, 7 答案仅为

linux Shell学习笔记第三天

假装没事ソ 提交于 2020-03-24 06:19:52
第三天:条件选择 大 纲 应用实例分析 条件测试 if…else…fi case…in…esac 实现功能菜单: 执行脚本后 按1,显示当前时间 按2,显示CPU负载 按3,显示剩余内存 按0,退出脚本 按其他字符,提示超出选择范围后退出 分析步骤。 #date +%T uptime awk截取 free –m 条件测试格式 #test –option obj #[ -option obj ] 返回结果 表达式内容测试结果是真的 表达式内容测试结果是假的 测试的对象分类 执行结果(执行成功或失败) 文件(文件是否存在等) 文本(是否一致) 数字(数值比较) 条件测试的选项 选项 作用 -d 目录 -e 是否存在 -f 是否是普通文件 -s 文件大小是否等于0 -r 是否可读 -w 是否可写 -x 是否可执行 逻辑操作符号 选项 作用 -a 与操作 -o 或操作 ! 非操作 实例: #test –e /etc/passwd –a –e /etc/shadow 中间是a与操作,则都为0才得0 #test –e /etc/passwd –o –e /etc/groups 中间是o或操作,则有一真则真0 字符串操作符 == 两个字符串相等 != 两个字符串不相等 -z 空字符串 -n 非空字符串 实例: #test –z $LOGNAME #echo $LOGNAME #echo $?

[LeetCode] Unique Binary Search Trees

徘徊边缘 提交于 2020-03-24 06:12:31
Given n , how many structurally unique BST's (binary search trees) that store values 1... n ? For example, Given n = 3, there are a total of 5 unique BST's. 1 3 3 2 1 \ / / / \ \ 3 2 1 1 3 2 / / \ \ 2 1 2 3 Hide Tags Tree Dynamic Programming 思路:dp 如果集合为空,只有一种BST,即空树, UniqueTrees[0] =1 如果集合仅有一个元素,只有一种BST,即为单个节点UniqueTrees[1] = 1 UniqueTrees[2] = UniqueTrees[0] * UniqueTrees[1] (1为根的情况)+ UniqueTrees[1] * UniqueTrees[0] (2为根的情况)。 再看一遍三个元素的数组,可以发现BST的取值方式如下: UniqueTrees[3] = UniqueTrees[0]*UniqueTrees[2] (1为根的情况) + UniqueTrees[1]*UniqueTrees[1] (2为根的情况) + UniqueTrees[2]*UniqueTrees[0] (3为根的情况) 所以

【转】还款计划文件生成

白昼怎懂夜的黑 提交于 2020-03-23 21:57:40
原文链接:https://blog.csdn.net/sinat_37967865/article/details/94744873 from decimal import Decimal from prettytable import PrettyTable import copy from dealFloat import float_deal # Decimal格式 principal = Decimal('1000.00') # 本金 annual_rate = Decimal('0.115') # 年化利率 term_rate = annual_rate / Decimal('12') # 月利率 day_rate = annual_rate / Decimal('12') /Decimal('30') # 日利率 repayPattern = { "MCAT": "随借随还,按日计息", "BFTO": "利随本清,按日计息", "MIRD": "按月付息到期还本", "EPEI": "等本等息,按月付息", # 对借款人最不利 "MCEP": "等额本金,按月付息", # 借款总利息最低 "MCEI": "等额等息,按月付息" } line = PrettyTable(["期数", "还款本息", "当期本金", "当期利息","剩余本金","还款方式"])

《自拍教程49》Python_adb批量字符输入

假如想象 提交于 2020-03-23 20:44:11
Android终端产品系统或App测试,涉及输入框边界值测试, 比如wifi热点设置热点名称, 或者搜索输入框, 需要验证该文本输入框是否最多可以输入256个字符, 如何快速实现进准的256个字符的输入呢? 准备阶段 手动先点击wifi热点名称文本输入框,确保光标已经在编辑框内了 利用adb shell input text + 256个字符, 可以输入256字符串输入 string.ascii_letters 可以包含大小写的英文字母 string.digits 可以包含数字1-10 random.sample 可以随机实现从一个数组“池” 里随机采样 Python批处理脚本形式 # coding=utf-8 import os import string import random chars_num = 256 # chars num字符数量 random_list = random.sample((string.ascii_letters + string.digits) * 5, chars_num - 8) random_str = ''.join(random_list) random_str = "START" + random_str + "END" print(random_str) os.system("adb shell input text %s" %

Python递归

谁说我不能喝 提交于 2020-03-23 18:47:12
在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。 def age(n): if n == 1: return 10 # 结束条件 else: return age(n-1) + 2 # 调用函数本身 print(age(5)) 结果: 18 递归的原理 print(data) if len(data)> 1: # 判断当列表的长度大于1的时候,进行二分法递归运算 mid_index=int(len(data)/2) # 取中间的得索引位置 mid_value=data[mid_index] # 中间位置的值 if num < mid_value: # 当输入的值比中间的值小的情况 data = data[:mid_index] # 切片操作,把左侧到索引值的列表重新复制给data search(num,data) # 调用函数本身 elif num > mid_value: #  data = data[mid_index:] search(num,data) else: print("you get it") return # 这是结束条件 else: # 这是当列表的长度是1的时候 if num == data[0]: #现在只有一个元素 print("you get it") else: print("no exits") search