杂类
反向爆零直至AK
从零开始的编程生活,枯燥却紧张
展开
-
指针问题
指针问题请留言!原创 2020-10-27 22:02:28 · 166 阅读 · 1 评论 -
送分啦-QAQ(斐波那契博弈)
这一题就是一个斐波那契博弈问题。 斐波那契博弈: 有一堆个数为n(n>=2)的石子,游戏双方轮流取石子,规则如下: 1)先手不能在第一次把所有的石子取完,至少取1颗; 2)之后每次可以取的石子数至少为1,至多为对手刚取的石子数的2倍。 约定取走最后一个石子的人为赢家,求必败态。 结论:当n为Fibonacci数的时候,必败。 f[i]:1,2,3,5,8,13,21,34,55...原创 2018-03-16 09:57:22 · 279 阅读 · 0 评论 -
学长推荐的博客(一直学习)
【1】https://blog.csdn.net/ACdreamers/article/category/1159392 【2】http://www.cnblogs.com/qscqesze/ 【3】http://www.cnblogs.com/kuangbin/ 【4】https://projecteuler.net/about 【5】http://www.shuizilong.com/...原创 2018-04-25 15:19:41 · 186 阅读 · 0 评论 -
优先队列(目前遇到的各种写法)
最近遇到了,就总结一下。 优先队列是按照其中的某一个参数,先输出最大(或者最小)的那一个。 优先队列的写法: priority_queue<int>q;//括号里可以填各种数据类型 priority_queue<node>q; priority_queue<int,vector<int>,greater<int&原创 2018-03-28 16:01:37 · 1266 阅读 · 0 评论 -
m皇后(思路题目)
这道题当初有两点没有想到,一点是不知道该如何处理斜着的方向,另一点是没想到只用求该直线上的两端点。 这题要开四个数组,分别记录该方向上的点的最左端和最右端。 然后遍历所有的点,遍历该点的四个方向(上下是一个方向,左右是一个方向,斜向上一个,斜向下一个),如果该方向上只有一个点,就不存在威胁,如果该点在最右端或者最左端,在该方向上就有一个威胁,否则该点在中间,就有两个威胁。然后记录该点有几个威胁...原创 2018-03-17 14:42:59 · 253 阅读 · 1 评论 -
快排的优化(快排还有优化?)
先说一下,表示我很懵逼,做了一道快排的模板,一直超时,简直要死了,在讨论区一看,啥!!!!!!!还要优化?(没听说过,长知识了) 这是我看的一个非常好的博客,讲解快排的优化方法:三种快排及四种优化方式。 我只是在这里将它的精华提取出来,具体的可以看博客。 首先看一下,这种方法的速度。 最下面的是最终优化的方法,用三数取中+插排+聚集相等元素。 首先是三数取中,因为分析:最佳的划分是将原创 2018-01-26 18:17:14 · 660 阅读 · 0 评论 -
1304 : 表达式求值(暴力)
题目链接:1304 : 表达式求值题目大意:给你个表达式求值。有4点: 1。有可能是数字(这也是一个表达式)。 2。min(x,y) ,让你求最小值 3。max(x,y) ,让你求最大值 4。add(x,y) ,让你将两数相加 注意:表达式中没有空格,也没有正负号。思路:判断表达式中的逗号前后,如果是表达式就调用函数重复操作即可,如果是数字计算出来。代码:#include<stdio.h原创 2017-11-26 19:30:09 · 194 阅读 · 0 评论 -
1302 : 序号互换(进制的题)
题目链接:1302 : 序号互换题目大意:给你一串数字或者大写字母,输出它对应的大写字母或价值。思路:单个字母的价值是1-26,超过26就需要进位,相当于这是一个26进制的数。 先说字母转化为价值,这个最简单,按照十进制那样算即可,只不过进制是26,而不是10。 然后是字母好难啊,首先要将它转化为26进制,看它每一位上是否有数字(如果十进制就是看个十百千,每一位上是否有数),然后判断是否有0出现原创 2017-11-26 19:07:09 · 264 阅读 · 0 评论 -
万能头文件#include <bits/stdc++.h>
第一次遇见,据说包含了c++所有的头文件#include <bits/stdc++.h> using namespace std;原创 2017-07-26 15:01:58 · 554 阅读 · 0 评论 -
素数打表(两种方法)
1.void init() //预处理[1,1e6]范围内的素数 { //i既是【2,1e6】的数,又是下面for循环中每个素数的倍数(2倍到1e6倍) for(int i=2; i<1000000; i++) { if(!isprime[i]) prime[num_prime++]=i;原创 2017-09-07 20:39:40 · 410 阅读 · 0 评论 -
indices(不是指数)
Two apartments are adjacent if their indices differ by 1.谷歌翻译:如果两个公寓的指数相差1,则相邻。 不清楚是我理解的“指数”的含义理解错了,还是咋了。 我的理解是 例如 2和4 是相邻的,因为一个是2的一次方,一个是2的2次方。正确的意思是:如果两个公寓的数相差1,则相邻。 例如: 2和3 是相邻的,8和9是相邻的,因为他们相差原创 2017-09-07 08:44:55 · 870 阅读 · 0 评论 -
求一个数的约数有多少个
由题得出的小结论,题目:点击打开链接 如果一个数n有质因子a,b,c... n=a^a1*b^b1..... 则约数个数有 (a1+1)*(b1+1)..... #include #include int zy[1000]; int a[1000]; int k; void zhi(int n)//存储n的质因数 { int i; fo原创 2017-04-01 17:18:28 · 7504 阅读 · 0 评论 -
自己遇到的几种非知识点的错误
1. 学会宏定义: #define maxx 5009//否则会超时(最短路时遇到) int u[maxx],v[maxx],w[maxx]; int first[maxx],next[maxx];//next有时无法定义,在打网络赛时遇到过,有的oj过不了 int dp[maxx],xia[maxx]; 以后会不断添加,如果有人写过类似的,请留言(借鉴一下),谢谢原创 2017-04-22 20:37:10 · 226 阅读 · 0 评论 -
hdu 6033 Add More Zero
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6033这一题题目很简单,但是当时就是想了很久,没有想到。求n个数相(a1–an)乘后,所得数的位数:log10(ai)的和就为长度。以前做过 数的长度这道题,但是当时没有想太多,这回是,知道了。#include<stdio.h> #include<math.h>int main() { int原创 2017-08-16 08:56:25 · 247 阅读 · 0 评论 -
RMQ算法(第一次遇见,忍不住转发)
1. 概述RMQ(Range Minimum/Maximum Query),即区间最值查询,是指这样一个问题:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j<=n),返回数列A中下标在i,j之间的最小/大值。这两个问题是在实际应用中经常遇到的问题,下面介绍一下解决这两种问题的比较高效的算法。当然,该问题也可以用线段树(也叫区间树)解决,算法复杂度为:O(N)~O(logN),这里我们转载 2017-07-29 17:16:23 · 193 阅读 · 0 评论 -
2350: 彩排(二进制记录个数)
题目链接:http://acm.nyist.me/JudgeOnline/problem.php?id=23502350: 彩排 时间限制: 1 Sec 内存限制: 128 MB 提交: 142 解决: 16 [提交][状态][讨论版] 题目描述 南阳理工学院,举办运动会,有N个人来自不同的学院,在站队伍的时候每一排需要站K个人,并且这一排的人需要来自同一个学院,但是现在其中有一个学院的人数不是原创 2017-07-29 14:47:53 · 242 阅读 · 0 评论