1.PAT A1001题目要求将数字按照三三一组,用" , "隔开,那么你就计算" , "会出现的位置, 下标为%3 == 0 && 下标 >0的后面
2.PAT A1013给定n个顶点的图,顶点到顶点的边也给定. (题目意思是你把某一个顶点删除掉,问你将其余顶点连在一起还需要多少条边)
思路:当你把某一个顶点删除后,它所连接的边也是不需要的.需要多少条边才能把这个图中剩下顶点连接起来
一?你把这个图里面的这个边给删掉,顶点删掉....
二:结合图的遍历特点,如果visit[i] == false;你才会去访问这个顶点,并且cnt++
你在初始时就将这个顶点标记为true,for(int i =0 ;i < n;i++) if(visit[i] == false) 就不会遍历到这个顶点
从而求出剩余顶点构成的连通图的数量减去1,就是你需要添加的边的数量
3.结构体数组的使用,对结构体中按照某一变量的大小进行排序,并且返回获得其首个元素
// PAT A1006谁来得早,谁来的晚.cpp : 定义控制台应用程序的入口点。
//
//#include "stdafx.h"
#include <stdio.h>
#include <string>
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;
struct student{
char ID[16];
char intime[10];
char outtime[10];
};
bool cmpearly(student a,student b){
int ha = (a.intime[0] - '0') * 10 + (a.intime[1] - '0');
int hb = (b.intime[0] - '0') * 10 + (b.intime[1] - '0');
if(ha != hb){
return ha < hb;
}
int ma = (a.intime[3] - '0') * 10 + (a.intime[4] - '0');
int mb = (b.intime[3] - '0') * 10 + (b.intime[4] - '0');
if(ma != mb){
return ma < mb;
}
int sa = (a.intime[6] - '0') * 10 + (a.intime[7] - '0');
int sb = (b.intime[6] - '0') * 10 + (b.intime[7] - '0');
if(ha != hb){
return ha < hb;
}
}
bool cmplate(student a,student b){
int ha = (a.outtime[0] - '0') * 10 + (a.outtime[1] - '0');
int hb = (b.outtime[0] - '0') * 10 + (b.outtime[1] - '0');
if(ha != hb){
return ha > hb;
}
int ma = (a.outtime[3] - '0') * 10 + (a.outtime[4] - '0');
int mb = (b.outtime[3] - '0') * 10 + (b.outtime[4] - '0');
if(ma != mb){
return ma > mb;
}
int sa = (a.outtime[6] - '0') * 10 + (a.outtime[7] - '0');
int sb = (b.outtime[6] - '0') * 10 + (b.outtime[7] - '0');
if(ha != hb){
return ha > hb;
}
}
int main()
{
int m;
scanf("%d",&m);
vector<student> stu;
for(int i = 0;i <m;i++){
student temp;
scanf("%s %s %s",temp.ID,temp.intime,temp.outtime);
stu.push_back(temp);
}
sort(stu.begin(),stu.end(),cmpearly);
vector<student>::iterator it = stu.begin();
printf("%s ",it->ID);
sort(stu.begin(),stu.end(),cmplate);
vector<student>::iterator it1 = stu.begin();
printf("%s\n",it1->ID);
//system("pause");
return 0;
}