自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

姚军

富贵非吾愿,帝乡不可期。怀良辰以孤往,或植杖而耘耔。

  • 博客(51)
  • 收藏
  • 关注

原创 1081 检查密码 (15 分)

查看原题目请点我这里 解题思路 这是道简单的字符串处理的题,需要注意的是要用gets接收一行字符。 代码#include<cstdio>#include<cstring>int check(char s[],int m){ int num=0,alph=0; for(int i=0;i<m;i++){ if((s[i]...

2018-03-18 21:06:53 388

原创 二叉搜索树【浙江大学】★

查看原题目请点我这里 解题思路 首先进行根据输入的数据建立二叉排序树,然后将后面的输入依次与最开始的树对比是否是相同的树。关于是否是两棵相同的树,LeetCode上面有道这样的题,好多大神写的代码简洁又高效,我刚好想到这上面的这道题,直接搬过来用了。#include<cstdio>#include<cstring>struct node{ int ...

2018-03-17 17:08:52 343

原创 数塔【HDOJ2084】

查看原题目请点我这里 解题思路 题目已经说了这是动态规划的题,需要注意的地方是可以用滚动数组节省空间,注意是从前面往后面滚动,因为前面的数值一旦确定以后在当前行就不会再使用。#include<cstdio>#include<cstring>int arr[110][110];int max(int a,int b){ return a>b?a:b...

2018-03-17 11:55:12 169

原创 1039 到底买不买 (20 分)

查看原题目请点我这里 解题思路 主要是散列,其次是对比将不足的记为负数。#include<cstdio>#include<cstring>const int maxn=1005;int arr[80]={0};int main(){ char str[maxn],stt[maxn]; scanf("%s%s",str,stt); ...

2018-03-16 22:03:34 393

原创 1014. 福尔摩斯的约会 (20)

查看原题目请点我这里 解题思路 需要注意的地方是第二个相同的字符,指的是字母A-N和0-9的字符,另外输出的时候需要用0填充不足两位的情况。 字符串数组可以用来存星期的字符串。 心态崩了 这道题好坑呀,西湖的水,我的泪~ 本来我在牛客网上顺利的通过了美滋滋,但是拿到PAT上一提交,发现总是有一个测试点过不去,哇,我的心态,炸穿了呀~ 第一个比对的不是所有的大写字母,而是A-G之间的大...

2018-03-16 19:49:28 132

原创 1036 跟奥巴马一起编程 (15 分)

查看原题目请点我这里 解题思路 需要注意的是题目说的时四舍五入,所以应该是向上取整除完加1,或者加一以后再除都是正确的。#include<cstdio>int main(){ int n; char ch; scanf("%d %c",&n,&ch); int t=(n+1)/2; for(int i=0;i&l...

2018-03-16 18:53:19 199

原创 1018 锤子剪刀布 (20 分)

解题思路 计算甲乙两者的胜负,相当于零和博弈,甲赢了乙肯定输了,所以记录甲就行了,乙的胜负与之相反。 注意 最后需要输出获胜次数最多的手势,我开始是用数组记录,将获胜的手势字符转变为ASCII对应的数值存在数组中,然后从数组中找出最大值,最后用char输出该结果,但~是~没通过。我觉得逻辑上没问题,后来我实在没办法了,只能搞了个map通过了。#include<cstdio>...

2018-03-16 12:03:26 184

原创 1012 数字分类 (20 分)

查看原题目请点我这里解题思路 按照题目要求,逐个计算,需要注意的是判断某一类数是否不存在,一道简单的细节题。#include<cstdio>const int maxn=1010;int arr[maxn]={0};int main(){ int n,a1=0,a2=0,a3=0,a4=0,a5=-1,num,k=0;//a5是求最大值,所以初值一般赋为最小...

2018-03-16 11:16:21 212

原创 1037. Magic Coupon (25)

查看原题目请点我这里解题思路 先按从大到小排序 大的正数和大的正数相乘 再按从小到大排序 小的负数和小的负数相乘 最后结果就是两者的和#include<cstdio>#include<algorithm>using namespace std;const int maxn=100005;int cop[maxn]={0};int pro[maxn...

2018-03-16 11:05:04 180

原创 1067 试密码 (20 分)

查看原题目请点击我这里 解题思路 好坑呀这道题,明明说了没有空格,然后用scanf读入老是出错。 比较字符串直接用strcmp注意要带头文件。 注意 在用gets的时候,如果前面有scanf过,需要在前面补充一个getchar。#include<cstdio>#include<cstring>char pwd[30];char ipwd[100];in...

2018-03-15 21:11:08 208

原创 1059 C语言竞赛 (20 分)

查看原题目请点我这里 解题思路 显然这是一道排序题,但是有几个比较烦的地方,其一需要判断素数,由于这里给的数字不是很大,可以用单个判别,不用打素数表,当然打表以后速度更快;其二,对于查过的编号需要输出checked,但是不存在的ID仍然需要输出Are you kidding?所以再散列一遍参赛选手的ID。 注意 参赛选手编号是四位数,所以需要用0填充,这一点在样例中有体现,相信大家都不会出...

2018-03-15 20:08:08 231 1

原创 1028 人口普查 (20 分)

查看原题目请点我这里解题思路 首先把合理的人员加入结构体中,在加入的时候顺便统计一下有多少个人,然后对结构体中合格的人员按照出生日期进行排序,得到最年长的在第一位,最年轻的在最后一位,直接输出就行了。是否是合理的人员通过check函数判断。 注意 当没有合格的人员时,直接输出0就行了。#include<cstdio>#include<algorithm>#...

2018-03-15 19:33:54 199

原创 1019 数字黑洞 (20 分)

查看原题目请点我解题思路:主要是将数字每位拆分后放在数组上,然后对数组进行升序和降序排列,再将数组中的数字计算出来,最后判断是6174或者0不再循环。还有一些细节方面的问题,如果写代码的时候注意到,就可以直接得满分,而不用纠结某个测试点一直过去,其实有时候就是习惯问题,比如声明变量时顺便赋值为0,还有数组每次计算完后要置0等等。#include<cstdio>#include...

2018-03-15 18:39:37 332

原创 1020 月饼 (25 分)

查看原题目请点我这里 解题思路:这是入门级的贪心算法,涉及结构体排序,需要注意的是尽量统一数据类型,不然特别烦。我第三个测试点搞了很久,但是我看了别人的代码,发现我的逻辑上丝毫没有问题,最后终于发现了,原来是结构体中一部分用的int,还有一部分用的double,两者进行比较的时候就出现了问题。#include<cstdio>#include<algorithm>...

2018-03-15 18:06:47 210

原创 Primary Arithmetic【北京大学】

查看原题目请点我这里 解题思路:这道题应该算是大数加法,只是换了种说法而已,主要注意两个细节,字符串需要先反转后再从个位开算,另外两个字符不一定相同长度,需要补充成一样长。#include<cstdio>#include<cstring>int cnt;void add(char s[],char t[]){ int c=0; int len...

2018-03-15 17:01:44 533

原创 Doubles

查看原题目请点我 解题思路:由于输入个数未知,所以需要用while进行判断,然后就是枚举。#include<cstdio>#include<cstring>int main(){ int num,tmp; int arr[110]; while(scanf("%d",&num)!=EOF){ memset(arr...

2018-03-15 16:14:52 154

原创 1002 写出这个数 (20 分)

查看原题目请点我 解题思路:主要是字符串的处理,首先求和,然后把求得的数字转化为数字,再用对应的数字映射导对应的拼音进行输出。#include<cstdio>#include<cstring>char stt[][8]={"ling","yi","er","san","si","wu","liu",&

2018-03-15 12:17:18 369

原创 1060 爱丁顿数 (25 分)

查看原题目请点我 解题思路:我记得我当时上机考这道题的时候特别幸运,因为我根本就没怎么读懂题就拿了24分,只有最后一个测试点那一分没拿到。#include<cstdio>#include<algorithm>using namespace std;const int maxn=100005;int arr[maxn]={0};bool cmp(int a...

2018-03-15 12:03:17 195

原创 1047 编程团体赛 (20 分)

查看原题目请点我这里 解题思路:参赛队员的编号没什么用,主要是队伍的编号是数字,直接用数组散列就行了。 C/C++代码实现#include<cstdio>const int maxn=1005;int arr[maxn]={0};int main(){ int N; scanf("%d",&N); int a,b,c,maxname,m...

2018-03-14 19:16:43 150

原创 1046 划拳 (15 分)

查看原题目请点我这里 解题思路:注意同时赢不用罚酒 C/C++代码实现#include<cstdio>int main(){ int N,a,ap,b,bp; scanf("%d",&N); int acnt=0,bcnt=0; for(int i=0;i<N;i++){ scanf("%d%d%d%d",&amp...

2018-03-14 19:07:21 150

原创 1023 组个最小数 (20 分)

查看原题目请点我 C/C++版#include<cstdio>int arr[12]={0};int main(){ for(int i=0;i<10;i++){ scanf("%d",&arr[i]); } for(int i=1;i<10;i++){ if(arr[i]!=0){ ...

2018-03-14 18:50:37 192

原创 1063 计算谱半径 (20 分)

查看原题目请点我 C/C++代码实现#include<cstdio>#include<cmath>int main(){ int N; scanf("%d",&N); double max=-1005; int real,img; for(int i=0;i<N;i++){ scanf("%d%...

2018-03-14 18:37:35 203

原创 1031 查验身份证 (15 分)

查看原题目请点我 解题思路:这里先要检查是否前17位都为数字,然后将前17位的数字加权对11取模,然后进行明码翻译,如果对应正确就是合格的身份证号码。#include<cstdio>#include<cstring>int weight[]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};int M[]={1,0,11,9,8,7...

2018-03-14 18:27:41 326

原创 1041 考试座位号 (15 分)

查看原题目请点我 C/C++代码实现 解题思路:主要就是查询的问题,这里需要查询的是试机时的座位号,由于数据不是很大可以直接散列,然后直接输出。#include<cstdio>#include<cstring>const int maxn=1005;struct node{ char name[20]; int intest;}stu[ma...

2018-03-14 15:02:10 424

原创 1056 组合数的和 (15 分)

查看原题目请点我 解题思路:模拟==它怎么说你就怎么做#include<cstdio>int main(){ int N; scanf("%d",&N); int arr[20]={0}; for(int i=0;i<N;i++){ scanf("%d",&arr[i]); } int sum...

2018-03-14 14:43:14 221

原创 1001. 害死人不偿命的(3n+1)猜想 (15)

查看原题目请点我 题外话:这是入门题,我最近想把PAT乙级的题目都用python实现一遍,但是发现还是挺吃力的,python还没学好,暂时只更新简单的题吧。估计也没什么人会看到,方便以后自己查阅吧。代码有什么问题欢迎大家找我交流。C/C++版#include<cstdio>int main(){ int n; scanf("%d",&n); ...

2018-03-14 14:24:52 492

原创 1061 判断题 (15 分)

查看原题目请点这里 C/C++版#include<cstdio>const int maxn=110;int main(){ int N,M,num; scanf("%d%d",&N,&M); int full[maxn]={0}; int right[maxn]={0}; for(int i=0;i<M;i++)...

2018-03-14 12:43:40 317

原创 1066 图像过滤 (15 分)

查看原题目请点我这里简单模拟题#include<cstdio>const int maxn=510;int arr[maxn][maxn];int main(){ int M,N,A,B,C; scanf("%d%d%d%d%d",&M,&N,&A,&B,&C); for(int i=0;i<M;i...

2018-03-14 10:21:08 201

原创 1074 宇宙无敌加法器 (20 分)

查看原题目请点我这里注意:如果一次都没有输出,最后要输出一个0。#include<cstdio>#include<cstring>void reverse(char s[]){ int len=strlen(s); for(int i=0;i<len/2;i++){ int tmp=s[i]; s...

2018-03-13 20:56:17 255

原创 1072 开学寄语 (20 分)

查看原题目请点这里 注意的地方:第三个测试点容易出错,题目说的是4位数字,所以输出的时候就必须是四位,即读入的是0721,不注意的话,会直接输出721,这样测试点就不通过。#include<cstdio>#include<cstring>const int maxn=10005;int main(){ int N,M,num,k; char ...

2018-03-13 20:15:57 342

原创 1071 小赌怡情 (15 分)

查看原题目请点这里 解题思路:模拟。#include<cstdio>int main(){ int T,K; scanf("%d%d",&T,&K); int n1,n2,b,t; for(int i=0;i<K;i++){ scanf("%d%d%d%d",&n1,&b,&t,&

2018-03-13 19:32:38 253 1

原创 1076 Wifi密码 (15 分)

查看原题目请点这里 解题思路:模拟#include<cstdio>int main(){ int n; char str[110]={0},s[10]; scanf("%d",&n); int i; for(i=0;i<n;i++){ for(int j=0;j<4;j++){ ...

2018-03-13 19:05:36 532

原创 1057 数零壹 (20 分)

查看原题目请点我 解题思路:这道题数据不大,直接相加以后算就完事了,注意几个小技巧,使用逻辑运算会比除法快一些,sum&1如果是奇数结果为1,如果是偶数结果为0,然后sum>>1表示sum除以2。中间第三个测试点,我前两次提交都出错了,当sum为0的时候可以直接输出0 0了,如果继续计算反而会出错。#include<cstdio>#include<...

2018-03-13 18:31:25 359

原创 1054 求平均值 (20 分)

查看原题目请点我 解题思路:字符串处理,我这里完全是手动判断,注意2.也是合法的浮点数,后面有个点,我分了两个小数和一个小数,最后还要加没有小数部分只有小数点的情况。#include<cstdio>#include<cstring>double ans;int check(char s[]){ int len=strlen(s); double ...

2018-03-13 15:46:14 201

原创 1051 复数乘法 (15 分)

查看原题目请点我 解题思路:这道题复杂在最后的两个测试点,这里牵涉到先四舍五入再比较和先比较后四舍五入的问题 。显然我们需要的是前一种,所以中间需要特殊处理一下算出来的数。题目给的是极坐标,但是可以用欧拉公式转换后的三角公式算,两个乘一下就行了,但是我算的时候发现可以用合并,cosAcosB - sinAsinB = cos(A+B)。我也只是记得到个大概,反正有例子,测试一下后,发现公式中的加...

2018-03-13 13:13:26 245

原创 1038 统计同成绩学生 (20 分)

查看原题目请点我 解题思路:这是一道超级简单的题,散列就完事了!#include<cstdio>int Hash[100]={0};int main(){ int N,num,K; scanf("%d",&N); for(int i=0;i<N;i++){ scanf("%d",&num); ...

2018-03-13 12:06:05 197

原创 1029 旧键盘 (20 分)

查看原题目请点我 解题思路:本题还是比较简单的,主要是对字符串的处理,利用hash识别是否输出过,对于大小写字母任意一个出现,就代表该键已坏,所以后续该键不必输出。#include<cstdio>#include<cstring>int main(){ char in[100],out[100]; scanf("%s%s",in,out); ...

2018-03-13 11:46:23 202

原创 1080 MOOC期终成绩 (25 分)

查看原题目请点击我 解题思路:这道题有点类似数据库的合并一样,把名字相同的不同表合为一张表。我考虑的还是使用结构体,但是如果用strcmp来比较这个名字是否出现过,将会非常慢,我开始是这样做的,但是最后一个测试点不通过,超时了,后来用了一下map的映射,然后稍微加快了点,顺利通过了。#include<cstdio>#include<iostream>#incl...

2018-03-13 10:30:43 339 1

原创 1079 延迟的回文数 (20 分)

查看原题目请点我 解题思路:本题属于字符串的处理,主要是反转和大数相加的过程,如果会STL标准库就更简单了。#include<cstdio>#include<cstring>const int maxn = 1010;char str1[maxn],str2[maxn],str3[maxn],str[maxn],rev[maxn];void reverse(c...

2018-03-12 19:31:43 236

原创 1077 互评成绩计算 (20 分)

查看原题目请点我 解题思路:题目太简单,没用到思路,很可惜,直接上代码就出来了。#include<cstdio>#include<cstring>const int maxn=110;int arr[maxn],ans[maxn]={0};int main(){ int N,M; scanf("%d%d",&N,&M); ...

2018-03-12 18:15:29 381

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除