思维
化身孤岛的鲸o
我祈祷拥有一颗透明的心灵
展开
-
赛码网 Manager 最后录取多少人
赛码网 Manager 最后录取多少人原创 2023-04-04 00:38:43 · 521 阅读 · 1 评论 -
LeetCode 775. 全局倒置与局部倒置 归并排序 思维
leetcode 755原创 2022-11-16 20:16:33 · 92 阅读 · 0 评论 -
PAT甲级 1148 Werewolf - Simple Version (20分) 狼人杀(简单版) 暴力枚举
PAT甲级 1148 Werewolf - Simple Version (20分) 狼人杀(简单版) 暴力枚举题解:总共有两个狼人。题目说的很明显,说谎的肯定一个是狼人,一个是村民。所以我们只要暴力枚举那两个狼人即可,然后计算说谎的人数,当这个人数等于2且一个是狼人一个是村民时,就可以输出答案了。若没有答案,则输出“No Solution”代码如下:#include<i...原创 2020-03-07 21:43:00 · 398 阅读 · 0 评论 -
PAT甲级 1128 N Queens Puzzle 判断给出的图是否满足n皇后问题 思维
代码如下://思维#include<iostream>#include<vector>#include<cmath>using namespace std;int k;int main(){ cin>>k; int n; for(int p=0;p<k;p++){ bool flag...原创 2019-11-15 23:55:52 · 213 阅读 · 0 评论 -
PAT甲级 1125 Chain the Ropes 思维
代码如下://简单思维#include<iostream>#include<algorithm>using namespace std;int n;int a[10005];int main(){ cin>>n; for(int i=0;i<n;i++){ cin>>a[i]; }...原创 2019-11-15 23:49:52 · 145 阅读 · 0 评论 -
PAT甲级 1117 Eddington Number 思维
题目大意:给出n个数代表Eddington每天跑步的里程数,我们要找出一个最大的数E,使得Eddington在n天中有大于等于E天跑步的里程数超过E。思路:数组cnt[i]保存每英里的天数,然后从前加到后,这时数组里保存的就是里程数小于等于i公里的天数。里程数大于N的天数一律视作里程数N+1.然后用cnt[N+1]-cnt[i]得到里程数大于i英里的天数,与i作比较即可。时间复杂度为O(N...原创 2019-10-21 14:40:25 · 222 阅读 · 0 评论 -
PAT甲级 1113 Integer Set Partition 思维
题目大意:给出n个正整数,我们要把它们分成两部分,个数记为n1和n2,我们要在使|n1-n2|尽可能小的情况下,使|sum1-sum2|尽可能大,sum表示这部分所有数之和。思路:排序即可。代码如下:#include<iostream>#include<algorithm>#include<math.h>using namespace std...原创 2019-10-21 14:17:03 · 174 阅读 · 1 评论 -
PAT甲级 1112 Stucked Keyboard 思维+map
题目大意:给出一个正整数k,再给出一个字符串,若这个字符串中的某个字符总是连续出现k(1<k<=100)个,则这个字符是“坏”的,我们需要在最后输出所有“坏”的字符,然后输出正确的字符串,也就是只保留一个“坏”的字符。代码如下:#include<iostream>#include<string>#include<map>#includ...原创 2019-10-21 14:13:02 · 171 阅读 · 0 评论 -
PAT甲级 1101 Quick Sort map+思维
Solution:题目大意:给出一个n个数的序列,n个数都不同,根据快速排序的原理,我们需要选取主元pivot,在pivot左边的元素小于等于pivot,在pivot右边的元素大于等于pivot。我们要求出在这个序列中可以选取多少个主元,并将它们升序打印。假设输出的序列为a[],我们将它升序排列后得到序列b[],并用两个map m1,m2分别记录每个元素在a和b中的位置,再遍历序列,若m1...原创 2019-09-30 20:53:46 · 168 阅读 · 0 评论 -
PAT甲级 1104 Sum of Number Segments 找规律
Solution:题目大意:给出一个序列,我们要计算所有段的和。我们只要列出所有的段,就可以找出规律。例如0.1, 0.2 , 0.3, 0.4我们有:0.10.1 0.2 0.1 0.2 0.30.1 0.2 0.3 0.4 0.2 0.2 0.3 0.2 0.3 0.4 0.3 0.3 0.4 0.4...原创 2019-09-30 20:04:32 · 162 阅读 · 0 评论 -
PAT甲级 1105 Spiral Matrix 输出螺旋式矩阵
Solution:题目大意:给出一个序列,需要将其从大到小排序,然后以m x n的矩阵形式输出,要求是顺时针旋转,并要求m和n的差值最小且m>=n。依次向右、向下、向左、向上填充即可。代码如下://输出螺旋式矩阵#include<iostream>#include<iomanip>#include<math.h>#include<a...原创 2019-09-30 19:53:09 · 198 阅读 · 0 评论 -
PAT甲级 1037 Magic Coupon 排序+遍历
Solution:题目要求:有Nc种优惠券和Np种商品,若优惠券是正数,商品的价格也是正数,则消费者可以得到两者乘积的金钱;换言之只要优惠券与商品的乘积是正数,则消费者可以得到两者成绩大小的金钱,否则,若为负数,消费者就要向商家支付优惠券与商品乘积绝对值的金钱,问消费者最终能得到的最大金额。将优惠券、商品价格分别进行从小到大的排序,从前往后 进行负数的乘积相加,从后往前进行正数的乘积相加...原创 2019-08-31 15:45:23 · 172 阅读 · 0 评论 -
PAT甲级 1049 Counting Ones 巧妙统计1的个数
Solution:题目要求:要求很简单,给出一个数n(n<=2的30次方)。2的30次方大概是1073741824,而int最大为2147483647,所以不会超出int。求1~n之间的所有数中1出现的次数。我们可以把一个数分为left,current,right三个部分,即left=数字N在i位左侧的数字、current=数字N在第i位的数字、right=数字N在i位右侧的数字...原创 2019-08-31 20:16:32 · 221 阅读 · 0 评论 -
PAT甲级1059 Prime Factors 质因数分解+线性筛素数
Solution:题目要求:要求对一个long int型正整数进行质因数分解。用线性筛素数的方法。代码如下://质因数分解+线性筛素数#include<iostream>#define MAX 1000010using namespace std;long n;//判断的数nbool isprime[MAX];int ans[MAX];//存储质数的个数...原创 2019-09-01 11:08:19 · 223 阅读 · 0 评论 -
PAT甲级 1065 A+B and C (64bit) 巧妙利用溢出
Solution:给出三个数a,b,c,都是long long int型整数,判断a+b是否大于c。利用long long溢出就可以了。代码如下://高精度a+b 巧妙利用溢出#include<stdio.h>#include<iostream>using namespace std;int main(){ int n; bool flag; cin...原创 2019-09-01 14:03:16 · 178 阅读 · 0 评论 -
PAT甲级 1089 Insert or Merge
代码如下://模拟插入排序和归并排序#include<iostream>#include<algorithm>#include<vector>using namespace std;int n;vector<int>init;//初始的数组vector<int>goal;//当前的数组vector<int&g...原创 2019-09-07 23:46:28 · 171 阅读 · 0 评论 -
PAT甲级 1152 Google Recruitment
Solution://在一个长度为L的字符串中找到长度为k的素数#include<iostream>#include<string>using namespace std;int l,k;int a[1005];bool judge(int num){ for(int i=2;i*i<=num;i++){ if(num...原创 2019-09-07 23:41:27 · 220 阅读 · 0 评论 -
PAT甲级 1093 Count PAT's 思维
Solution:题目大意:给出一个字符串s(只包含“P"“A”"T”),输出这个字符串包含多少个“PAT”。我们可以记录所有"A"出现的位置。同时用两个数组num_p,num_t记录每一个位置前面出现的“P”的个数以及每一个位置后面出现的"T"的个数。我们再根据记录的所有“A”的位置i,res+=num_p[i] * num_t[i]。代码如下://思维#include<i...原创 2019-09-11 00:34:10 · 174 阅读 · 0 评论 -
PAT甲级 1096 Consecutive Factors 思维 找出连续因子的最大个数
Solution:题目大意:给出一个正整数n,求n的连续因子的最大数,并输出这些连续因子。令m = sqrt(n)+1,凡是大于m的数都不可能是n的连续因子,所以只用考虑到m即可。然后我们暴力遍历,记录first和len即可。代码如下://思维#include<iostream>#include<algorithm>#include<math.h&g...原创 2019-09-12 22:08:05 · 191 阅读 · 0 评论 -
PAT甲级 1029 Median 寻找中位数
Solution:这道题的意思是,给出两个递增的数组,它们的个数为n1、n2(n1、n2<200000),求出这两个数组的中位数,即将它们合并后(仍然递增)后的数组的中位数。中位数 mid =(n1+n2+1)/2一种方法是将这两个数组读入到一个数组中,再进行排序,最后直接取中位数即可,但这种方法不能通过全部测试点。方法一:#include<iostream>#in...原创 2019-05-17 00:40:09 · 261 阅读 · 0 评论