
PAT乙级
heavenbiang
奋战在IT的小程序媛一枚
展开
-
B1025/A1074 反转链表
#include <iostream>#include<cstdio> #include <algorithm>using namespace std;int main() { int first,n,k,temp; scanf("%d%d%d",&first,&n,&k); int data[100010...原创 2018-03-05 14:51:30 · 181 阅读 · 0 评论 -
B1023 组个最小数
#include<cstdio>int main(){ int count[10]; for(int i=0;i<10;i++) { scanf("%d",&count[i]); } for(int i=1;i<10;i++) { if(count[i]!=0) { printf("%d",i); count[i]--; ...原创 2018-03-03 14:56:23 · 199 阅读 · 0 评论 -
B1005 继续(3n+1)猜想
真的很需要细心!!#include<cstdio>#include<algorithm>using namespace std;bool cmp(int a,int b){ return a>b;}int main(){ int n,m,a[110]; scanf("%d",&n); bool hash[1000]={0}; for(i...原创 2018-03-03 11:19:30 · 155 阅读 · 0 评论 -
B1047 编程团体赛
#include<cstdio>const int maxn=1010;int hash[maxn]={0};int main(){ int n; scanf("%d",&n); int team,member,score; for(int i=0;i<n;i++) { scanf("%d-%d %d",&team,&member,&...原创 2018-03-03 01:55:59 · 155 阅读 · 0 评论 -
B1043 输出PATest
#include<cstdio>const int maxn=10010;char dist[6]={'P','A','T','e','s','t'};int hash[6]={0};int main(){ char str[maxn]; gets(str); int len=strlen(str); int sum=0; for(int i=0;i<len;...原创 2018-03-03 01:33:10 · 192 阅读 · 0 评论 -
B1042 字符统计
#include<cstdio>#include <cctype>#include <string>using namespace std;int main() { string s; getline(cin, s); int a[26] = {0}; for (int i = 0; i < s.length(); ...原创 2018-03-03 01:10:25 · 249 阅读 · 0 评论 -
B1039/A1092 到底买不买
#include<cstdio>int change(char c)///此处就相当于定义了散列函数!! { if(c>='0'&&c<='9') return c-'0'; if(c>='a'&&c<='z') return c-'a'+10; if(c>='A'&&c<='Z') retu原创 2018-03-03 00:56:43 · 153 阅读 · 0 评论 -
B1038 统计同成绩学生
用空间换时间,hash数组的思想,原来正式名称叫散列啊#include<cstdio>int main(){ int n,score; int hash[100]={0}; scanf("%d\n",&n); for(int i=0;i<n;i++) { scanf("%d",&score); hash[score]++; } int k...原创 2018-03-03 00:28:10 · 99 阅读 · 0 评论 -
B1033 旧键盘打字
#include <iostream>#include <string>#include<cctype> using namespace std;int main() { string bad, should; getline(cin, bad); //为了防止第一行是空的,不能用cin >> ,用getline(cin, ...)...原创 2018-03-03 00:02:25 · 462 阅读 · 0 评论 -
B1029/A1084 旧键盘
#include <iostream>#include<string>using namespace std;int main() { string s1, s2, ans; cin >> s1 >> s2; for (int i = 0; i < s1.length(); i++) if (s2....原创 2018-03-02 23:22:30 · 134 阅读 · 0 评论 -
B1020/A1070 月饼
#include<cstdio>#include<vector>#include<algorithm>using namespace std;struct mooncake{ double store,sell,price; };bool cmp(mooncake a,mooncake b){ return a.price>b.pric...原创 2018-03-03 15:25:11 · 120 阅读 · 0 评论 -
B1030/A1085 完美数列
结论:能使选出的数的个数最大的方案,一定是在该递增序列中选择连续的若干个数的方案。问题转换成:在一个给定的递增序列中,确定一个左端点a[i]和右端点a[j],且j-i的值最大#include<cstdio>#include<algorithm>using namespace std;const int maxn=100010;bool cmp(int a,int b...原创 2018-03-03 20:09:58 · 142 阅读 · 0 评论 -
B1044 火星数字
#include <iostream>#include<cstdio>#include <string>using namespace std;void func1(string s);void func2(string s);int main() { int n; scanf("%d",&n); getchar...原创 2018-03-04 23:42:53 · 256 阅读 · 0 评论 -
B1013 数素数
#include<cstdio>#include<cmath>const int maxn=1000000000;bool isPrime(int n){ if(n<=1) return false; int sqr=(int)sqrt(1.0*n); for(int i=2;i<=sqr;i++) { if(n%i==0) return f...原创 2018-03-04 14:03:16 · 159 阅读 · 0 评论 -
B1007 素数对猜想
#include<cstdio>#include<cmath>bool isPrime(int n){ if(n<=1) return false; int sqr=(int)sqrt(1.0*n); for(int i=2;i<=sqr;i++) { if(n%i==0) return false; } return true;}in...原创 2018-03-04 13:39:03 · 130 阅读 · 0 评论 -
B1034/A1088 Rational Arithmetic
#include<cstdio>#include<algorithm>using namespace std;typedef long long ll;struct Fraction{ ll up,down;}a,b;ll gcd(ll a,ll b){ return b==0?a:gcd(b,a%b);}Fraction reduction(...原创 2018-03-04 13:17:22 · 188 阅读 · 0 评论 -
B1017 A除以B
思路:模拟手动除法过程,每一位够除的写到最终商的结果中,余数*10加后一位的值继续进行除法操作。#include <iostream>#include<string>using namespace std;int main() { string s; int a, t = 0, temp = 0; cin >> s >>...原创 2018-03-04 17:30:25 · 363 阅读 · 0 评论 -
B1049/A1104 数列的片段和
规律:如果当前是第i个数,那么其出现总次数等于i*(n+1-i)#include<cstdio>int main(){ int n; double v,ans=0; scanf("%d",&n); for(int i=0;i<n;i++) { scanf("%lf",&v); ans+=v*i*(n+1-i); } printf("%.2...原创 2018-03-04 01:21:18 · 291 阅读 · 0 评论 -
B1019/A1069 数字黑洞
#include<cstdio>#include<algorithm>using namespace std;bool cmp1(int a,int b){return a>b;}bool cmp2(int a,int b){return a<b;}void chai(int n,int num[]){ for(int i=0;i<4;i...原创 2018-03-04 01:11:22 · 140 阅读 · 0 评论 -
B1003 我要通过
总结字符串要求:只能有一个P一个T,中间末尾和开头可以随便插入A。但是必须满足开头的A的个数 * 中间的A的个数 = 结尾的A的个数#include <iostream>#include<cstdio>#include<string>#include <map>using namespace std;int main() { int...原创 2018-03-04 00:36:41 · 151 阅读 · 0 评论 -
B1045/A1101 快速排序
暴力判断会超时,考虑继承关系。令数组leftmax记录序列A的每一位左边的最大值,不含本位令数组rightmin记录序列A的每一位右边的最小值,不含本位很棒的思想!#include<cstdio>#include<algorithm>using namespace std;const int maxn=100010;const int INF=1000000000;...原创 2018-03-03 23:31:43 · 109 阅读 · 0 评论 -
B1040 /A1093 有几个PAT
思路:对一个确定位置的A来说,以它形成的PAT的个数等于它左边p的个数乘以它右边T的个数还有右侧不用定义数组,边统计边计算最后结果。#include<cstdio>#include<cstring>const int maxn=100010;const int mod=1000000007;int main(){ char leftp[maxn]={0}; c...原创 2018-03-03 23:13:33 · 138 阅读 · 0 评论 -
B1015/A1062 德才论
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;struct student{ char id[10]; int de,cai,sum; int flag;}stu[100010];bool cmp(student a,student b){ ...原创 2018-03-02 01:20:03 · 118 阅读 · 0 评论 -
B1048 数字加密
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int maxn=110;char a[maxn],b[maxn];char ans[maxn]={0};int main(){ scanf("%s %s",a,b); int lenA=...原创 2018-03-01 20:13:14 · 634 阅读 · 0 评论 -
B1004 成绩排名
#include<cstdio>struct Student{ char name[10]; char id[15]; int score;}temp,max,min;int main(){ int n; max.score=-1; min.score=101; scanf("%d",&n); for(int i=0;i<n;i++) { ...原创 2018-02-28 15:40:44 · 279 阅读 · 0 评论 -
B1041 考试座位号
#include<cstdio> const int maxn=1000; struct Student { long long number; int ty; int te; }student[maxn]; int main() { int n; scanf("%d",&n); for(int i=0;i<n;i++) { ...原创 2018-02-28 15:12:58 · 353 阅读 · 0 评论 -
B1010一元多项式求导
#include<cstdio>int main(){ int m,n; int flag=0; while(scanf("%d %d",&m,&n)!=EOF) { if(flag==0&&n==0) printf("0 0"); if(n!=0) { if(flag==1) printf(" "); printf(..原创 2018-02-28 11:08:59 · 237 阅读 · 0 评论 -
B1018 锤子剪刀布
思路:一种一种情况做判断,实在是太麻烦 #include<cstdio>int main(){ int n; scanf("%d",&n); int timesA[3]={0},timesB[3]={0}; int handA[3]={0},handB[3]={0};//BCJ for(int i=0;i<n;i++) { char c1,c2;...原创 2018-02-27 22:47:46 · 134 阅读 · 0 评论 -
B1012 数字分类
#include<cstdio>int count[5]={0};int ans[5]={0};int main(){ int n; scanf("%d",&n); int temp; for(int i=0;i<n;i++) { scanf("%d",&temp); if(temp%5==0&&temp%2==0) ...原创 2018-02-27 21:27:38 · 127 阅读 · 0 评论 -
B1008 数组元素循环右移问题
思路:定义交换函数reverse 0......(n-m-1),(n-m),........(n-1) 1换:(n-m-1)......0,(n-m),........(n-1) 2换:(n-m-1)..........0,(n-1).............(n-m) ...原创 2018-02-27 20:42:14 · 147 阅读 · 0 评论 -
B1046划拳
#include<cstdio>int main(){ int N; scanf("%d",&N); int counta=0,countb=0; int a,b,c,d; for(int i=0;i<N;i++) { scanf("%d%d%d%d",&a,&b,&c,&d); if(a+c==b&&原创 2018-02-27 19:58:10 · 255 阅读 · 0 评论 -
B1026 程序运行时间
思路:已知c1,c2两个时钟打点数,除100即得到总秒数/3600得到小时数,%3600/60得到分钟数,%3600%60得到秒#include<cstdio>int main(){ int c1,c2; scanf("%d%d",&c1,&c2); int n=(c2-c1+50)/100; int hour=n/3600; int minute=n%3...原创 2018-02-27 19:30:42 · 207 阅读 · 0 评论 -
B1016 部分A+B
思路:主要实现在整数a中查找是否存在某一位的值为da由于10^10超过了int型的范围,定义为long long型枚举a的每一位,定义pa用来保存a中存在的da #include<cstdio> int main() { long long a,b,da,db; scanf("%lld%lld%lld%lld",&a,&da,&b,&db);...原创 2018-02-27 17:53:05 · 132 阅读 · 0 评论 -
B1011 A+B和C
#include <cstdio>int main() { int n; scanf("%d", &n); for (int i = 0; i < n; i++) { long long int a, b, c; scanf("%lld%lld%lld", &a, &b, &c); ...原创 2018-02-27 17:17:16 · 287 阅读 · 0 评论 -
B1028 人口普查
#include<cstdio>struct person{ char name[10]; int year; int month; int day;}max,min;int main(){ int n; max.year = 0, max.month = 0, max.day = 0, min.year = 9999, min.month = 9999, ...原创 2018-02-28 16:26:29 · 178 阅读 · 0 评论 -
B1032 挖掘机技术哪家强
#include<cstdio>int main(){ int n; scanf("%d",&n); int num,score; int c[100000]={0}; for(int i=0;i<n;i++) { scanf("%d %d",&num,&score); c[num]+=score; } int max=0; ...原创 2018-02-28 16:39:17 · 192 阅读 · 0 评论 -
B1024/A1073 科学计数法
(unfinished)自己写了一半,后面写不出了,参考书上的也看不懂了,郁闷~#include<cstdio>int main(){ char str[10010]; gets(str); int len=strlen(str); if(str[0]=='-') printf("-"); int pos=0; for(int i=0;i<len;i++) {...原创 2018-03-01 17:39:31 · 171 阅读 · 0 评论 -
B1014/A1061 福尔摩斯的约会
注意:“%02d”每种判别之间的转换需要理清楚#include<cstdio>#include<cstring>int main(){ char week[7][5]={"MON","TUE","WED","THU","FRI","SAT","SUN"}; char str1[70],str2[70],s原创 2018-03-01 16:30:49 · 146 阅读 · 0 评论 -
B1009 说反话
思路:以空格为分隔符统计字符个数,将单词顺序保存在二维数组中,最后逆序输出。输入完内容先回车再输入ctrl+z再回车确认文件结束Scanf()函数有一个返回值,成功时返回的是成功输入数据的个数,错误时返回EOF,EOF为宏定义的一个值#include<cstdio>int main(){ int num=0; char str[90][90]; while(scanf("%s...原创 2018-03-01 15:42:26 · 189 阅读 · 0 评论 -
B1002 写出这个数
int main(){ char str[100]; scanf("%s",str); int len=strlen(str); int sum=0; for(int i=0;i<len;i++) { sum+=str[i]-'0'; //*** } int ans[10]; int count=0; do { ans[count++]=sum%10; ...原创 2018-03-01 15:09:03 · 207 阅读 · 0 评论