摘要: 题意很简单就是让你求给定区间的素数,然后用一个循环求出相距最远的相邻素数数和最近的素数以及相距最近的相邻素数 难点在与数据很大,所以不可能直接对区间的每一个数进行素数判断。但是,每个合数n都至少有一个因数在2到根号n(以此来筛去该合数),同时这其中U的最大值为2的31次方,对其开方得46000+,这 阅读全文
posted @ 2019-07-24 01:05 wrihat 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 有两点需要注意,第一点就是,题意是指在第T秒时门才打开,并不是越早到门口就能越早出去,而是只要存在指定长的路径即可以出去。 第二点,每次深搜发现答案不符都必须将点重新初始化。#include<iostream>#include<utility>#define INF 10000using names 阅读全文
posted @ 2019-07-23 23:26 wrihat 阅读(196) 评论(0) 推荐(0) 编辑
摘要: #include<iostream>using namespace std;int a[100000];void solve(int k,int n,int t);int main(){ int t,n; cin>>t; for(int i=1;i<=t;i++) { cin>>n; for(int 阅读全文
posted @ 2019-07-21 20:44 wrihat 阅读(518) 评论(0) 推荐(0) 编辑
摘要: 本题利用深度遍历的穷竭搜索法进行解题,即对每一个元素都对其进行各个方向的深度遍历,穷尽其周围 #include<iostream>#include<cstdio>using namespace std;char a[10000][10000]={{'.'}};//全局变量的使用可以避免函数引用二维数 阅读全文
posted @ 2019-07-04 23:01 wrihat 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 因为蚂蚁的朝向不明确,所以,可以根据需要假定朝向方向 首先,当每只蚂蚁朝着离自己最近的端点前进,且不回头则,所需总时间最少 当每只蚂蚁朝着离自己最远的端点前进,所需时间最多,在这期间,会碰到其他蚂蚁,但是因为每只蚂蚁的速度相同,所以即使它们都回头,却相当于它们交错前进没有回头。 #include < 阅读全文
posted @ 2019-07-04 18:17 wrihat 阅读(141) 评论(0) 推荐(0) 编辑
摘要: #include <iostream>#include<vector>#include<string>#include<cctype>#include<algorithm>#include<stdio.h>using namespace std;int main(){ string alph="AB 阅读全文
posted @ 2019-07-03 23:37 wrihat 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 解题思路:因为要求的数出现的次数总是比其他数字出现的次数多1,所以若总是用相同的数去与其他的数相抵,那么最后只剩下一个,那就是要求的数。 另外需要注意的一点就是,最好不要去开长度为999999的数组,那样基本上时行不通的,时间复杂度也是大到吓人,一般都会超时,所以最好不要去开这么大的数组。 最关键的 阅读全文
posted @ 2019-07-03 17:39 wrihat 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 这道题有两个问题: 首先,是求利用数论的辗转相除法求最大公约数,后再求最小公倍数m*n/gcd(m,n),其中,m*n可能会超过int 数据范围,所以,该语句换成m/gcd(m,n)*n。 然后是如果只有一个元素的话直接输入该元素。 #include<iostream>#include<math.h 阅读全文
posted @ 2019-05-22 00:28 wrihat 阅读(328) 评论(0) 推荐(0) 编辑
摘要: 问题描述: 计算机模拟通常需要随机数。生成伪随机数的一种方法是通过窗体的函数seed(x+1) = [种子 (x) + STEP]% MOD其中 "%" 是模量运算符。这样的函数将生成0和 MOD-1 之间的伪随机数 (种子)。此窗体的函数的一个问题是, 它们总是会反复生成相同的模式。为了最大限度地 阅读全文
posted @ 2019-05-17 14:53 wrihat 阅读(298) 评论(0) 推荐(0) 编辑