dfs和多线程
算法连接奶牛
利用全排列来代替爆搜,因为每个走法只能对应一个全排列,简化了搜索。只需要判断每次全排列是否能从第一个点走到第二个点,以及在连续的三个点中方向是否改变,以及能否从最后一个点回到原点。get函数来判断两个点的方向。
利用pair数对
来存储奶牛的坐标。
12345678910111213141516171819202122232425262728293031get函数 int get(PII a, PII b) { if(a.first != b.first && a.second != b.second) return -1; if(a.first == b.first) { if(b.second > a.second) return 0; else return 2; } if(b.first > a.first) return 1; return 3;} // 0,1,2,3分 ...
博弈论和数学知识
算法能被整除的数
容斥原理~
时间复杂度是$O(2^m - 1)$
123456789101112131415161718192021222324252627282930313233343536373839404142#include<iostream>using namespace std;typedef long long LL;const int N = 20;int p[N];int main() { int n, m; cin >> n >> m; for(int i = 0; i < m; i ++) cin >> p[i]; LL res = 0; for(int i = 1; i < 1 << m; i ++) { LL t = 1, cnt = 0; for(int j = 0; j < m; j ++) if(i >> j & 1 ...
Javascript笔记
==严格要求== 在代码开头前加上1'user strict'
==定义局部变量用let,定义全局变量用var==12let i = 1;var i = 1;
==定义一个对象的方法==1234567var person = { name:"cc", age:3, // 数组可以有多种类型 tags:['js',123,'javaweb'] //最后一个不需要“,” }
==NaN表示不是一个数字,有个方法叫做 isNaN();==
NaN == NaN —- false
==定义字符串,字符串不可变性==
123let name = "cc";let age = 23;let msg = ...

