- 博客(38)
- 问答 (1)
- 收藏
- 关注
原创 洛谷--过河卒
题目注意数据太大要用long long#include<cstdlib>#include<iostream>using namespace std;long long chess[22][22];bool judge[22][22];int main(){ int n,m,N,M; cin >> n >> m >> N >> M; judge[N+1][M+1] = true; for(
2022-03-09 09:59:29 236
原创 新二叉树 p1305——洛谷
题目链接注意题目不是按照广度优先给出节点的,比如a下面左b右c,有可能下一个会给c的信息而不是b的#include <iostream>using namespace std;typedef struct t{ char c; t *right = NULL; t *left = NULL;}tree,*Tree;Tree createTree(){ Tree Trees = new tree; return Trees;}Tree T
2022-03-03 17:41:54 505
原创 合并排序和快速排序2021年12月16日
合并排序:1、算法思想:将待排序的元素分成两个规模大小一致的集合,分别对这两个集合进行排序,最后合并两个集合,回到最初的规模大小,以完成排序。合并排序重点在合并。复杂度分析:暂略main.cpp:#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>using namespace std;void mergesort(int a[],int left,int
2021-12-16 17:25:59 171
原创 N皇后问题2021年12月14日
Description在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上。你的任务是,对于给定的N,求出有多少种合法的放置方法。Input共有若干行,每行一个正整数N≤10,表示棋盘和皇后的数量;如果N=0,表示结束。Output共有若干行,每行一个正整数,表示对应输入行的皇后的不同放置数量。Sample Input1850Sample Output19210ac:#include<ios
2021-12-14 21:59:16 98
原创 类如何存放在多文件并可以使用(2021-9-20)
开发工具eclipse一些需要注意的东西创建类的时候需要注意下创建路径,举个例子,如下图所示注意看CLASS.java是在study/src下的,而src下可以看到还有study和MathinGame两个文件夹,这两个文件夹这就是“包”package包的概念还不太理解,但是经过摸索发现一个有趣的事情在src的study包内的java文件必须要带上package + 自身包名才能运行,但是目录直接在src下的java文件则不需要,如果只是写一份代码用来写作业交题目的话直接在new界面建cla
2021-09-20 16:58:14 584
原创 javaRandom类的使用(2021-09-20)
参考了一篇文章1、导包(import)import java.util.Random;//random类,导包2、创建,实例化Random rand = new Random();3,使用方法int ans = rand.nextInt(1000)+1;//生成【0,1000)的整数写了一段猜1-1000的数的代码package study;import java.util.Random;//random类,导包import java.util.Scanner;//scanne
2021-09-20 15:16:25 302
原创 安装eclipse
安装eclipse前提是先安装jdk而且版本不要太老eclipse网址https://www.eclipse.org/downloads/点击download packages点windows x86_64如果和图中download from一样不是China,选select another mirror选大连东软这个,日本或其他的来源可能下载速度会很慢很多下载出这个东西,进入安装就行了进去会有许多选项,选这个,安装速度有点慢。。。安装之后打开就行了他会让你选一个路径保存
2021-09-01 09:20:33 108
原创 java jdk 16.0.2环境安装
java jdk 16.0.2环境安装https://www.oracle.com/java/technologies/javase-jdk16-downloads.html选择win x64 installer环境变量编辑path最底下一行应该是你安装jdk的目录加上\bin检查安装情况,可以徽标键+R打开命令提示符输入cmd,输入java -version显示出版本号16.0.2,就说明安装成功...
2021-08-31 17:38:51 277
原创 RMQ算法学习笔记
QMD算法是什么?QMD算法是怎么工作的?QMD的时间空间复杂度?QMD算法的预处理是怎么处理的?QMD经典题目以及样例详细分析:
2020-09-17 22:19:07 235
原创 manacher算法学习记录
manacher算法算法作用:算出一个字符串中最长的回文子字符串(有时也被表述成最长连续的子序列)如果用最暴力的算法,就是确定一个字符串然后一点一点往两边找,最差情况就是整个字符串由一个字符形成,时间复杂度是O(n2)manacher算法可以将时间复杂度变为O(n)我们先明确一下什么是回文:回文指的是从后往前读和从前往后读一致的字符串例如:“aaaa”、“abba”、"ababa"等等我们可以看到,回文分为字符数量为奇数的和字符数量为偶数的,下面就称作奇回文和偶回文那么就算是上面提到的从每
2020-09-04 00:33:29 133
原创 枚举训练:G题 Guest Student
题目来源#include<iostream>#include<cstdio>#include<algorithm>#include<cstdlib>#define MAX_N 100007typedef long long ll;using namespace std;ll Laze, human;ll temp_max;ll laze[MAX_N];ll times[MAX_N];ll best[MAX_N];//下标号工作的最优情
2020-08-03 19:13:06 178
原创 左移运算符的优先级问题
German Collegiate Programming Contest 2019H题:Jazz Enthusiast输入两个数n1,n2;题目大意是输入n1个时间(例如14分25秒是14:25,1小时是1:00:00,不是那种标准的24小时计时法)代表歌单内歌曲的时长,说是听歌的人喜欢把一首歌临近结束的n2秒剪掉,让你编一个程序决定他剪掉时间后还能听多长时间,最后一首歌结尾不剪掉#include<iostream>#include<cstdio>#include<
2020-08-01 14:23:35 1179
原创 2020年7月17日icpc集训C题:Fractal
分形:是物体在数量上,内容上"自相似"的一种数学抽象;(大概理解下就是部分跟整体相似,不断套娃)本题是对递归的应用这道题注意两点:(一)递归边界:n=1时,只在对应坐标点一个X;(二)分形模式:左上右上中间右上右下一定是对于当前坐标而言的,因此写递归的时候要记得加上x或者y#include<cstdio>#include<iostream>#include<cmath>#define M 729//3的6次方using namespace std;
2020-07-19 21:50:28 256
原创 2020年7月17日icpc集训F题——苏丹的继承者
本质上就是八皇后问题然后枚举最大值就行了添加链接描述#include<iostream>#include<cstdio>using namespace std;bool chess[100][8][8];int cnt;bool temp[8][8];bool leftd[15];bool rightd[15];bool jud[8];int score[8][8];void copy() { for (int i = 0; i < 8; i++)
2020-07-18 20:06:33 189
原创 2020年7月17日icpc集训J题:UVA-750八皇后问题
#include<cstdio>#include<cstring>#include<iostream>using namespace std;char chessBorad[100][8][8];char temp[8][8];int leftd[15];//左对角线int rightd[15];//右对角线bool jud[8];int ans;//记录一共有几种结果void copy() { for(int i=0;i<8;i++)
2020-07-18 10:50:16 230
原创 2020年7月17日icpc集训A题——递归与回溯POJ1664
题面如图所示思路当盘子比苹果多–>必然有盘子是空的–>空盘子有没有都一样(因为没有顺序差别)–>直接把盘子变得和苹果一样多当盘子不比苹果多–>可以做到让所有盘子都不空或者刻意让一些盘子空–>结果=让盘子空+不让盘子空让盘子空–>当盘子只剩一个–>所有果子只放一个盘子–>一种可能不让盘子空–>每个盘子都放一个–>当果子没了–>果子分完了–>一种可能#include<cstdio>#include<iost.
2020-07-18 07:27:05 184
原创 2020年7月17日ICPC训练联盟——递归与回溯
2020年7月17日ICPC训练联盟——递归与回溯递归:程序调用自身的编程技巧叫做递归,是子程序再起定义或说明中直接或间接调用自身的一种方法简称:我调用我自己视觉形式:德罗斯特效应德罗斯特效应(Droste effect)是递归的一种视觉形式,是指一张图片的某个部分与整张图片相同,如此产生无限循环。递归就是将一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解因此只需要少量的程序代码就可以描述出解题过程中需要的多次重复计算,使程序更加简洁清晰递归算法一般用于解决三类问题:1
2020-07-17 20:13:03 372
原创 枚举算法思路训练:poj2965
继poj1753继续训练枚举算法:这道题相比1753有两个改变:一、从小十字变成了大十字(从改变一个点的上下左右变成了一个点的整行整列),这个倒是不难做,执行函数稍微改一下就行二、题目直接让你输出改变的点(这道题是special judge),不过我直接把1753的寻找最小步数的思路拿来了,其实只要找到全部为open的一个解就行了思路差不多,不多解释了,直接上代码(吐槽一下edge,贴代码总是崩溃,google不会崩)#include<stack>#include<iostre
2020-07-16 22:04:44 129
原创 枚举算法思路训练:poj1753
从知乎找到一份训练大纲,先按照这个练习吧poj1753大意是4×4的棋盘上,不断黑白面的翻转自己和上下左右(如果有棋子的话),如果有可能翻到只有一种颜色,那么算出来最少翻几个棋子就可以做到只有一种颜色枚举的思想是不断地猜测,从可能的集合中一一尝试,然后再判断题目的条件是否成立。oiwiki是这么说的。。。。不过“从可能的集合中一一尝试”这段话引起了我的注意,原因后面再说先说一下我的思路吧:既然是4×4的棋盘,那么翻棋子最多可能就是16个棋子每个棋子都翻一遍因为一个棋子翻两遍等于没翻所以最初
2020-07-14 21:48:35 225
原创 高精度算法
题目描述 计算机的基本功能是计算,作为一个计算机爱好者,Ivy当然知道如何编写一个计算机程序,让计算机能进行简单的计算。之所以简单,因为Ivy的程序只需根据输入的两个正整数,根据要求计算这两个数的和或者差即可(所有输入数据确保x>=y)。 输入 输入共有三行。第一行包含一个正整数x,第二行包含一个正整数y,第三...
2020-04-02 23:09:32 145
原创 poj1321棋盘问题
题目链接Description在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。Input输入含有多组测试数据。每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放棋子的数目。 n &...
2020-03-19 07:50:14 272
原创 出栈序列
题目按照1到N的顺序入栈,但是不知道什么时候出栈,给你一列数,问你有没有可能是出栈序列#include<stack>#include<iostream>#include<string>#include<vector>#include<cstring>using namespace std;bool ARR[10007];/...
2020-03-17 17:03:22 250
原创 递归实现组合型枚举
题目来源题目描述从 1~n 这 n 个整数中随机选出 m 个,输出所有可能的选择方案。n>0n \gt 0n>0, 0≤m≤n0 \leq m \leq n0≤m≤n, n+(n−m)≤25n+(n-m)\leq 25n+(n−m)≤25。输入描述:两个整数n,m。输出描述:按照从小到大的顺序输出所有方案,每行1个。首先,同一行内的数升序排列,相邻两个数用一个空格隔开。其次...
2020-03-17 14:11:19 204
原创 洛谷P1706全排列问题
题目描述输出自然数 1 到 n 所有不重复的排列,即 n 的全排列,要求所产生的任一数字序列中不允许出现重复的数字。输入格式一个整数 n。输出格式由 1∼n 组成的所有不重复的数字序列,每行一个序列。每个数字保留 5 个场宽。输入输出样例输入:3输出:1 2 31 3 22 1 32 3 13 1 23 ...
2020-03-17 10:16:19 521
原创 埃氏筛
先贴代码#include<stdio.h>int a[1000];int main(){ int i,j; for(i=2;i<=1000;i++)//素数是大于1的,切记。判断可以写成i<=500,省一半循环 for(j=i+i;j<=1000;j+=i){//j是i的倍数 if(a[j]==0)//如果没被标记 a[j]=1;//标记...
2020-03-16 11:54:08 157
原创 快速幂
讲完快速乘了,把快速幂的原理一说贴代码就完了快速幂本质貌似是利用二进制优化去减少乘法的运算次数,快速乘是质变(运算方式的改变),而快速幂是量变,运算次数把n变成logn因为最简单的想法就是跑一个for循环,去计算幂 for(i=1;i<50;i++) res = a*a;//计算a的50次方 那么用二进制优化优化之后就是。。。。#include<bits/stdc++....
2020-03-16 11:01:34 112
原创 快速乘
因为计算机算加法的时间比算乘法的时间快得多(这貌似是学汇编才能明白原因?反正我不懂)所以我们如果能把乘法尽可能的用加法达到同样的效果,就可以缩短计算时间我们知道,任何一个数(这里指正整数)都可以用二进制表示,所以如果把一个数拆分成他的二进制就是一堆0和1:例如:8(D)=1000(B)16(D) = 10000(B)书面约定可以用字母来表示数字的对应进制D 十进制B 二进制O 八进制...
2020-03-16 10:51:20 166
原创 中石油竞赛—大数(string类)
题目小七是一个很可爱很努力的女孩子。她对大数的运算非常感兴趣,在学习了几天之后,终于精通了大数的加减乘除。但是自从她学会了 JAVA ,她觉得大数实在是太简单太无聊了,因为运用 JAVA 中 BigInteger 大整数类,可以轻松实现大数的加减乘除。某一天她突然发现,很多大数的题目的数据都有规律。这些数都是由比他小的某个数重复构成,比如说 121212 由 12重复构成 ,233233 ,由2...
2020-03-08 23:20:52 108
原创 中石油竞赛--奎奎发红包
奎奎发红包题目:情人节又到了,又到了一年一度发红包的时间。经大家研究决定,今年让奎奎自愿发红包。俱乐部有n个人(0<n<100000),每个人都有一个单身值v[i]与亲密度ti,单身值越大的人,在情人节的时候就越羡慕奎奎,奎奎就需要给他更大的红包来安慰他。 由于一个寒假没有见到奎奎,领红包的时候大家都想跟奎奎py,花费时间t[i],先py后给红包噢。大家都厌倦了等待,如果一个人...
2020-03-08 23:11:47 189
原创 用刚学的stl写约瑟夫环
刚刚学了c++的STL,用vector对元素删除的遍历,写约瑟夫环的实现过程先把题目和代码贴出来,然后我们慢慢分析题目描述Descriptionn 个小孩围坐成一圈,并按顺时针编号为1,2,…,n,从编号为 p 的小孩顺时针依次报数,由1报到m ,当报到 m 时,该小孩从圈中出去,然后下一个再从1报数,当报到 m 时再出去。如此反复,直至所有的小孩都从圈中出去。请按出去的先后顺序输出小孩的编...
2020-03-08 22:57:20 302 3
空空如也
为什么我的codeblocks16.01版本在我的系统中无法运行
2019-12-04
TA创建的收藏夹 TA关注的收藏夹
TA关注的人