PAT甲级 数学问题
PAT甲级中遇到的一些数学问题
爱吃梦龙雪糕
这个作者很懒,什么都没留下…
展开
-
1148 Werewolf - Simple Version (20 分)
狼人杀简化版,之前没接触过这类题所以做起来有些吃力。参考了柳神的代码。柳婼代码链接 坑点如下 1,做本题基本思想就是枚举。列出所有情况,本题中是先假设好两个狼人,再确定出哪些人在说谎。 2,本题用整型而不用bool来判断有其好处,可以用乘法和加法运算来确定各个人的身份。 3,注意有No Solution情况,也要输出。 整体代码如下 #include<vector> #include<cmath> #include<cstdio> using namespace std;原创 2021-09-01 09:24:51 · 69 阅读 · 0 评论 -
1104 Sum of Number Segments (20 分)
一道简单题目,注意找规律即可; 坑点如下 1,在实际做的过程中我找出了以下公式; for(int i=1;i<=n;i++){ sum=sum+i*(a[n-i]*1000); total+=sum; } 其中a为double数组三,sum,total均为double类型 但提交时发现测试点三一直无法通过,后来看有网友说是由于double无法准确表示浮点数导致的; 后来将sum,total均改为整数类型果然通过; 修改后代码如下 #include&原创 2021-07-27 10:10:54 · 56 阅读 · 0 评论 -
1067 Sort with Swap(0, i) (25 分)
贪心算法问题; 坑点如下; 1,本题易出现内存超限的问题,我的做法是分别开一个num数组和一个pos数组进行两两对应; 2,循坏的退出判断,用变量k记录当前除0外不在本位上的最小数,如k不存在,则表示排序完成,退出循环; 代码如下 #include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int maxn=100010; struct{ int num;原创 2021-07-28 12:18:38 · 23 阅读 · 0 评论 -
1051 Pop Sequence (25 分)
堆栈问题,已经写过一边但第二次还是没有思路:( 坑点如下 1,判出栈顺序是否合理的方法,将出栈顺序按顺序存储起来,先模拟入栈,如发现当前栈顶元素等于出栈元素,则将元素出栈。注意堆栈内元素不能超过上限值。 2,核心算法如下 for(int i=1;i<=n;i++) { st.push(i); while(!st.empty()&&st.top()==judge[current]&&s原创 2021-07-31 11:35:36 · 38 阅读 · 0 评论 -
1117 Eddington Number (25 分)
数学问题 参考柳神的解法 从大到小排序后结果为10、9、8、8、7、7、6、6、3、2。 坑点如下 1,根据排序后的数组可得知骑车大于等于 a[i] 英里的天数有 i+1 天,因为题目中要求超过E英里且所有的英里数为整数,所以可得知骑车超过 a[i]-1 英里的天数有 i+1 天 2,最后求的是满足a[i]>=i+2的最大i+1; 整体代码如下 #include<bits/stdc++.h> using namespace std; int number[100100]; int main原创 2021-08-20 10:08:35 · 53 阅读 · 0 评论 -
1125 Chain the Ropes (25 分)
贪心问题,要想生成最长绳子,应使得其中长段的绳子对折次数尽可能的少。 坑点如下 1,这题要求输出向下取整,开始理解成四舍五入了。附上四舍五入函数 int round(double x){ return int(x+0.5); } 整体代码如下 #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int n; int a[10010]; int main(){原创 2021-08-21 17:18:02 · 82 阅读 · 0 评论