PAT
文章平均质量分 60
Werky_blog
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
1032 链表
用结构体储存链表 #include #include #include #include #include #include using namespace std; struct Node{ char c; int next; bool flag; }node[100005]; int main(){ int n,a,b,s1,s2; char cc;原创 2017-09-16 15:51:49 · 208 阅读 · 0 评论 -
pat甲级1038 贪心
get到一个新的技能;s.erase(s.begin())可以把0(这里是begin)去掉#include <string> #include <iostream> #include <algorithm> using namespace std; bool cmp0(string a, string b) { return a + b < b +...转载 2017-09-16 19:18:50 · 277 阅读 · 0 评论 -
1111 Dijkstra+DFS
https://www.patest.cn/contests/pat-a-practise/1111 /* 没错,最快路径相同时是输出最少节点,自己读错题了 !!用pre[v].clear()一定先声明是二维数组; */ #include #include #include #include #include using namespace std; const int inf=999999转载 2017-09-17 11:02:03 · 267 阅读 · 0 评论 -
1016 (STL)
/* 原来他只会显示一个月的账单,不存在有两个月的 用node存输入数据,建立一个vector存node,排好序,建立map把对应数据存到名字下(开始跟着挂断时间) 用auto建立迭代器,循环map */ #include #include #include #include #include using namespace std; struct node{ string name;转载 2017-09-10 12:41:10 · 265 阅读 · 0 评论 -
1022 数字图书馆
贼牛,这我可写不出来,STL不6根本无从下手 /* 用map将ID和其信息()string连起来,ID存在set。可以自动排序 然后用find找出来,用迭代器输出存储的的满足信息的ID 其实每个key都是一个键,只不过一次输了好多个,和title等是一样的,只不过中间没有空格 */ #include #include #include #include #include #include usi转载 2017-09-10 16:54:35 · 251 阅读 · 0 评论 -
1039 vector+hash
果然最后一组超时: #include #include #include #include #include #include using namespace std; int main(){ int n,k,a,b; string str; scanf("%d%d",&n,&k); map > m; for(int i=0;i<k;i++){转载 2017-09-10 20:06:52 · 376 阅读 · 0 评论 -
1047 vector
这就是1039的反转,结果我还是超时了。。。 就没有学会用int存吗?不知道string很慢吗? #include #include #include #include #include #include using namespace std; int main(){ int n,k,a,b; string s; scanf("%d%d",&n,&k); v原创 2017-09-10 20:50:09 · 210 阅读 · 0 评论 -
1001
#include using namespace std; int main() { int a, b; cin >> a >> b; string s = to_string(a + b); int len = s.length(); for (int i = 0; i < len; i++) { //C++11,可直接用to_string将其他数据类转载 2017-09-02 15:02:04 · 238 阅读 · 0 评论 -
1002
#include #include using namespace std; int main() { int n, m, t; float num; float c[1005]={0}; scanf("%d",&n); for(int i=0;i<n;i++){ scanf("%d%f",&t,&num); c[t]+=nu原创 2017-09-02 19:05:41 · 253 阅读 · 0 评论 -
1054 map<int,int>
#include #include #include #include #include #include using namespace std; int main(){ int m,n,a,b; map mm; //原来用map在于下标很大时不用开到那么大 scanf("%d%d",&m,&n); for(int i=0;i<n;i++) f原创 2017-09-10 21:34:16 · 542 阅读 · 0 评论 -
1084 hash
PAT的hash大多都是结果作为下标,根本不用考虑冲突,数据给的很小 但为啥我就是老过不去这个点?究竟那个数据错了呀 #include #include #include #include #include using namespace std; int main(){ char s1[90],s2[90],temp,temp2; cin.getline(s1,90);原创 2017-09-11 22:22:21 · 168 阅读 · 0 评论 -
1107 并查集
根本不明白下标有什么作用? 从0开始和从1开始有什么区别? /* 放入并查集的还是人而不是课程, */ #include #include #include #include using namespace std; vector ans,father; bool cmp1(int a,int b){ return a>b; } int find(int x){ i原创 2017-09-12 19:45:04 · 239 阅读 · 0 评论 -
1030 Dijkstra+DFS
//原来做完Dijkstra加一个DFS是这么加的。要想好怎么递归 #include #include #include using namespace std; int n, m, s, d; int e[510][510], dis[510], cost[510][510]; vector pre[510]; //记录s到d的路径。 bool visit[510];转载 2017-09-04 21:38:53 · 283 阅读 · 0 评论 -
1015 进制转换,素数
#include <cstdio> #include <cmath> using namespace std; bool isprime(int n) { if(n <= 1) return false; int sqr = int(sqrt(n * 1.0)); for(int i = 2; i <= sqr; i++) { if(n % i == ...转载 2017-09-08 23:56:34 · 300 阅读 · 0 评论 -
L3-010 是否完全二叉树
题目:https://www.patest.cn/contests/gplt/L3-010#include<bits/stdc++.h> using namespace std; const int maxn=505; int T[maxn]; void update(int x,int pos){ if(!T[pos]){ T[pos]=x; ...原创 2018-03-15 16:07:31 · 162 阅读 · 0 评论 -
hdu 1007 /ZOJ 2107 Quoit Design (二分,最近点距离)
题目地址:hdu:点击打开链接 ZOJ:点击打开链接该代码在ZOJ能AC,但hdu就不行,不过可以作为一个经典案例分析:#include<stdio.h> #include<math.h> #include <stdlib.h> /*结构体尽量写成全局变量*/ struct point{ double x,y; }node[100005]; i...原创 2017-06-14 17:07:05 · 364 阅读 · 1 评论 -
1031 字符串打印
仍有测试点不过,实在找不出。。。 #include #include #include #include #include #include using namespace std; int main(){ char s[90]; scanf("%s",s); int len=strlen(s); /*for(int i=0;i<len;i++)原创 2017-09-16 15:12:23 · 314 阅读 · 0 评论 -
1029 序列排序找中位数
只能想出这种菜算法,果然超时,不过把cin改成scanf就过了,,,还真是c 的输入输出快 #include #include #include #include #include #include using namespace std; bool cmp1(long int a,long int b){ return a<b; } int main(){ int n,m;原创 2017-09-16 12:13:13 · 350 阅读 · 0 评论 -
1028 排序
#include #include #include #include #include #include using namespace std; struct student{ int id; char name[10]; //在不超过8个,起码要9个呀,还有/0呢 int grade; }; bool cmp1(student a,student b){原创 2017-09-16 11:31:50 · 284 阅读 · 0 评论 -
1004 (BFS,DFS) vector
正好通过PAT好好学习了下c++ 这些代码都是我边读边理解算法和c ++,侵删,柳婼姐一定不会生气的 这段代码很好的诠释了DFS的思想 #include #include #include using namespace std; vector v[100]; int book[100], maxdepth = -1; void dfs(int index, int d转载 2017-09-03 23:39:48 · 334 阅读 · 1 评论 -
1005 计算字符串累加和并输出
#include #include #include #include using namespace std; int main() { string a[10]={"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"}; string s; int sum=转载 2017-09-04 15:27:07 · 459 阅读 · 0 评论 -
1006
#include #include #include //里面包含INT_MAX,SHRT_MIN等最大最小数值 using namespace std; int main() { int n, minn = INT_MAX, maxn = INT_MIN; scanf("%d", &n); string unlocked, locked; for(in转载 2017-09-03 00:29:38 · 280 阅读 · 0 评论 -
1003 Dijkstra
memset函数 按照字节填充某字符在头文件里面 fill函数 按照单元赋值,将一个区间的元素都赋同一个值在头文件里面 因为memset函数按照字节填充,所以一般memset只能用来填充char型数组,(因为只有char型占一个字节)如果填充int型数组,除了0和-1,其他的不能。因为只有00000000 = 0,-1同理。如果我们把每一位都填充“1”,会导致变成填转载 2017-09-02 23:43:40 · 224 阅读 · 0 评论 -
1018 最短路 Dijkstra+DFS
/* 跟1030一样,只不过多加了一项限制,当minneed==tempneed的时候再判断一下minback即可; */ #include #include #include #include using namespace std; int cmax, n, sp, m; int e[510][510], dis[510], weight[510]; vector pre[510];原创 2017-09-13 10:52:29 · 322 阅读 · 0 评论 -
1019 进制转换 回文数
很奇怪,每次都有个测试点过不了,这题也有一个,很气,不找了!!! #include #include #include #include using namespace std; int arr[100]; int main(){ int n,b,i; cin>>n>>b; int len=0; if(n==0){ cout<<"Yes"原创 2017-09-13 13:51:31 · 484 阅读 · 0 评论 -
pat甲级1020/ L2-006 中序,后序转换为层序遍历
题目:https://www.patest.cn/contests/gplt/L2-006#include <cstdio> #include <iostream> #include <algorithm> #include <vector> using namespace std; vector<int> post, in, leve...转载 2017-09-13 19:56:21 · 288 阅读 · 0 评论 -
1008 电梯
#include #include using namespace std; int main(){ int N; scanf("%d",&N); vector v(N+1); v[0]=0; int time=0; for(int i=1;i scanf("%d",&v[i]); if(原创 2017-09-06 13:36:45 · 255 阅读 · 0 评论 -
1023 大数运算(乘2)
#include #include #include using namespace std; char a[30],ans[60]; int b[30],temp[60],book[11]; int main(){ scanf("%s",a); int len=strlen(a); for(int i=0;i<len;i++){ b[len-i-1]=a原创 2017-09-14 18:10:38 · 354 阅读 · 0 评论 -
1024 大数运算,回文数
#include #include #include using namespace std; int temp[1005],a[1005]; int isPN(int s[],int len){ int cnt=0; for(int i=0;i<len/2;i++){ if(s[i]!=s[len-1-i]) cnt=1; }原创 2017-09-14 20:11:46 · 459 阅读 · 0 评论 -
1011
#include #include #include using namespace std; vector v[5]; int main(){ int w[3]; //float v[3][3]; float temp,c; for(int i=0;i<3;i++){ temp=0; for(int j=0;j<3;j++){原创 2017-09-06 20:49:14 · 189 阅读 · 0 评论 -
1025 排序(vector存结构体)
竟然还有不足13位的id,要补0,怪不得最后一个测试点不过,,, /* 先把local的序排好,存到总的vector里 再sort总的 */ #include #include #include #include #include using namespace std; int temp[1005],a[1005]; struct student{ int score,loc,loc转载 2017-09-14 23:43:05 · 249 阅读 · 0 评论 -
1118 并查集
这道并查集其实很简单,circul别搞错就行 复制相似代码一定把变量改过来,尽量少偷懒 /* 并查集:一种树形结构,后存储数据,查找只需线性的复杂度 存的是鸟不是树 */ #include #include #include #include using namespace std; const int maxn=10005; int ans[maxn]={0},father[max原创 2017-09-12 22:58:37 · 245 阅读 · 0 评论 -
PAT 1012 排序
只会用这么蠢的方法,开辟了一堆空间。 还最高排名,,这些学生真虚伪。 好吧,想了一下,这代码更蠢了,除了其他人说的 1 1 2 3应该是1 1 3 4外;还有, 96 98 88 96 97! 88 96! 95 88! 带感叹号的是一个人的成绩,应该输出第一名,而我输出了第二名; 正确做法应该是:先把该同学各科成绩排名算出来原创 2017-09-07 16:29:00 · 226 阅读 · 0 评论 -
pat 甲级1013 DFS求强连通分量
vitally!题目:https://www.patest.cn/contests/pat-a-practise/1013#include<cstdio> #include<string> #include<algorithm> using namespace std; int v[1005][1005]; bool visit[1005]; int N; ...转载 2017-09-07 17:58:40 · 410 阅读 · 0 评论 -
1027 进制转换
十进制转13进制 #include #include #include #include #include using namespace std; int main(){ int a[3]; cin>>a[0]>>a[1]>>a[2]; char ans[7]; int len=0; for(int i=0;i<3;i++){ if(a原创 2017-09-16 10:31:28 · 822 阅读 · 0 评论 -
L3-002 堆栈 (线段树,求第k小)
题目:https://www.patest.cn/contests/gplt思路:线段树求第k小第一次这样使用线段树,从1到最大建树,把每个数放到叶节点里,每放一个就++,这样就相当于排好序了,查找x时找节点的cnt值就行,这样找到的就是第x小,然后把值输出即可(left或right)第一次发现不能t<<1+1这么写,只能t<<1|1。#include<bits/st...原创 2018-03-14 13:14:08 · 315 阅读 · 0 评论
分享