摘要: 3.4 A A 只能购买2的次方数的纸张,而他最大可以购买n大小的纸张 也就是求小于n的最大二次方数 #include<bits/stdc++.h> using namespace std; int main(){ int x; cin>>x; int d=(int)log2(x); cout<<p 阅读全文
posted @ 2023-03-05 14:10 zyzzzzlh 阅读(47) 评论(0) 推荐(0)
摘要: 试除法判定质数 bool is_prime(int x) { if (x < 2) return false; for (int i = 2; i <= x / i; i ++ ) if (x % i == 0) return false; return true; } 试除法分解质因数 void 阅读全文
posted @ 2023-02-19 16:53 zyzzzzlh 阅读(42) 评论(0) 推荐(0)
摘要: 单链表 // head存储链表头,e[]存储节点的值,ne[]存储节点的next指针,idx表示当前用到了哪个节点 int head, e[N], ne[N], idx; // 初始化 void init() { head = -1; idx = 0; } // 在链表头插入一个数a void in 阅读全文
posted @ 2023-02-12 15:52 zyzzzzlh 阅读(33) 评论(0) 推荐(0)
摘要: 树与图的存储 树是一种特殊的图,与图的存储方式相同。 对于无向图中的边ab,存储两条有向边a->b, b->a。 因此我们可以只考虑有向图的存储。 (1) 邻接矩阵:g[a][b] 存储边a->b (2) 邻接表: // 对于每个点k,开一个单链表,存储k所有可以走到的点。h[k]存储这个单链表的头 阅读全文
posted @ 2023-02-05 18:01 zyzzzzlh 阅读(36) 评论(0) 推荐(0)
摘要: 快速排序算法 void quick_sort(int q[], int l, int r) { if (l >= r) return; int i = l - 1, j = r + 1, x = q[l + r >> 1]; while (i < j) { do i ++ ; while (q[i] 阅读全文
posted @ 2023-01-20 18:39 zyzzzzlh 阅读(31) 评论(0) 推荐(0)
摘要: ![image](https://img2023.cnblogs.com/blog/2928011/202301/2928011-20230115215316536-445399168.png) ![image](https://img2023.cnblogs.com/blog/2928011/202301/2928011-20230115215323192-807896609.png) ![im 阅读全文
posted @ 2023-01-15 21:54 zyzzzzlh 阅读(62) 评论(0) 推荐(0)
摘要: 计算几何: Db是double 点积也可以理解为做功 叉积可以理解为面积(可以判断一个向量在另一个向量的左边还是右边、判定平行) 以p1为原点求出p2和p3然后求叉积 注意负号,建议赛时现推 Intersect函数用于特判 IsSS函数不能判断有一个端点在另一条直线上和两条线段平行的情况 阅读全文
posted @ 2023-01-08 13:16 zyzzzzlh 阅读(66) 评论(0) 推荐(0)
摘要: 概念 P状态:走到这一状态的人会赢。 N状态:从这一状态离开的人会赢 看个例题理解一下 这道题的取法如下图: 可以观察到NP态的性质: 至少能走到一个P态的状态是N态 下一步只能走到N态的状态是P态 步骤 确定NP态 打表 证明NP态是否正确(检测特殊情况) 一些特殊的博弈 Nim博弈 正常Nim博 阅读全文
posted @ 2023-01-08 10:09 zyzzzzlh 阅读(149) 评论(0) 推荐(0)
摘要: 快速排序 快速排序采用分治的思想 左端点放指针i,右端点放指针j,向中间移动,当出现i>=x或j<=x停止,将这两个数交换,当i>j的时候证明整个序列遍历结束 void kuaipai(int l,int r){ if(l>=r) return ; int i=l,j=r,x=a[(l+r)/2]; 阅读全文
posted @ 2023-01-02 13:26 zyzzzzlh 阅读(49) 评论(0) 推荐(0)
摘要: 加法 字符串输入 string add(string s1,string s2){ int l1,l2,l; l1=s1.length(); l2=s2.length(); if(l1<l2){ for(int i=1;i<=l2-l1;i++){ s1='0'+s1; } } else{ for( 阅读全文
posted @ 2022-08-12 11:07 zyzzzzlh 阅读(65) 评论(0) 推荐(0)