A : World Cup Betting

 #include <cstdio>
#include <iostream>
#include <algorithm> using namespace std; int main()
{
double sum = 0.65, cnt = ;
double tmpW, tmpT, tmpL;
while(cnt--)
{
cin >> tmpW >> tmpT >> tmpL;
if(tmpW > max(tmpT, tmpL))
{
cout << "W ";sum *= tmpW;
}
else if(tmpT > max(tmpW, tmpL))
{
cout << "T "; sum *= tmpT;
}
else
{
cout << "L "; sum *= tmpL;
}
}
printf("%.2f", (sum-)*);
return ;
}

B:The Best Rank

 #include <cstdio>
#include <iostream>
#include <vector>
#include <string>
#include <unordered_map>
#include <algorithm>
#include <functional> using namespace std;
typedef struct NODE
{
string id;
int math, english, cCode, aver;
NODE(){}
NODE(int m, int e, int c, int a):math(m),english(e),cCode(c),aver(a){}
}node;
vector<int> mathVec, engVec, cCodeVec, averVec;
unordered_map<string, node> nodeMap;
unordered_map<string, int> nodeFlagMap;
void getBestRank(string tmpStr)
{
char typeStr[]="ACME";
int type = , rank = ;
for(int i = ; i < averVec.size(); ++ i)
{
if(averVec[i] == nodeMap[tmpStr].aver)
{
rank = i+;
break;
}
}
for(int i = ; i < cCodeVec.size(); ++ i)
{
if(cCodeVec[i] == nodeMap[tmpStr].cCode && i + < rank)
{
type = ;
rank = i+;
break;
}
}
for(int i = ; i < mathVec.size(); ++ i)
{
if(mathVec[i] == nodeMap[tmpStr].math && i + < rank)
{
type = ;
rank = i+;
break;
}
}
for(int i = ; i < engVec.size(); ++ i)
{
if(engVec[i] == nodeMap[tmpStr].english && i + < rank)
{
type = ;
rank = i+;
break;
}
}
printf("%d %c\n", rank, typeStr[type]);
}
int main()
{
int N, M;
cin >> N >> M;
string tmpId;
int tmpMath, tmpEng, tmpCode, tmpAver;
for(int i = ; i < N; ++i)
{
cin >> tmpId >> tmpCode >> tmpMath >> tmpEng;
tmpAver = (tmpMath+tmpEng+tmpCode+1.5)/;
mathVec.push_back(tmpMath);
cCodeVec.push_back(tmpCode);
engVec.push_back(tmpEng);
averVec.push_back(tmpAver);
nodeFlagMap[tmpId] = ;
nodeMap[tmpId] = NODE(tmpMath, tmpEng, tmpCode, tmpAver);
}
sort(mathVec.begin(), mathVec.end(), greater<int>());
sort(cCodeVec.begin(), cCodeVec.end(), greater<int>());
sort(engVec.begin(), engVec.end(), greater<int>());
sort(averVec.begin(), averVec.end(), greater<int>());
for(int i = ; i < M; ++ i)
{
cin >> tmpId;
if(nodeFlagMap[tmpId])
getBestRank(tmpId);
else
cout << "N/A" << endl;
}
return ;
}

C: Battle Over Cities

  查连通图个数,深搜即可。

 #include <cstdio>
#include <iostream>
#include <vector>
#include <cstring>
#include <cstdlib>
#include <string>
#include <unordered_map>
#include <algorithm>
#include <functional> using namespace std;
const int INF = 0x7f7f7f7f;
const int MAXCITY = ;
#define CLR(a,b) memset(a,b,sizeof(a));
int routeMap[MAXCITY][MAXCITY];
int visitFlag[MAXCITY];
void dfs(int u)
{
visitFlag[u] = ;
for(int i = ; i <= MAXCITY; ++ i)
{
if(visitFlag[i] == && routeMap[u][i] == )
{
dfs(i);
}
}
}
int main()
{
int N, M, K;
cin >> N >> M >> K;
int tmpSt, tmpEnd;
CLR(routeMap, 0x7f);
for(int i = ; i < M; ++ i)
{
cin >> tmpSt >> tmpEnd;
routeMap[tmpSt][tmpEnd] = ;
routeMap[tmpEnd][tmpSt] = ;
}
int targetCity;
for(int j = ; j < K; ++ j)
{
cin >> targetCity;
int cnt = ;
CLR(visitFlag, );
visitFlag[targetCity] = ;
for(int i = ; i <= N; ++ i)
{
if(visitFlag[i] == )
{
cnt++;
dfs(i);
}
}
cout << cnt- << endl;
}
return ;
}

D :Waiting in Line

  模拟即可。

  注意:1.下班前没有被服务的输出Sorry

 #include <cstdio>
#include <iostream>
#include <vector>
#include <cstring>
#include <cstdlib>
#include <string>
#include <unordered_map>
#include <algorithm>
#include <functional>
#include <queue> using namespace std;
const int INF = 0x7f7f7f7f;
#define CLR(a,b) memset(a,b,sizeof(a));
typedef struct WINLINE
{
int lastTime, winId;
queue<int> winQue;
}winline;
typedef struct ALLQUE
{
vector<int> cusQue;
int index;
ALLQUE():index(){}
}allque;
const int endTime = *;
const int startTime = *;
vector<int> cusTime(, );
bool cmp(winline a, winline b)
{
if(a.winQue.size() != b.winQue.size())
return a.winQue.size() < b.winQue.size();
else
return a.winId < b.winId;
} int main()
{
int N, M, K, Q, tmpNum;
allque allCustQue;
cin >> N >> M >> K >> Q;
for(int i = ; i < K; ++ i)
{
cin >> tmpNum;
allCustQue.cusQue.push_back(tmpNum);
}
vector<winline> winInfo(N);
for(int i = ; i < N; ++ i)
{
winInfo[i].lastTime = startTime;
winInfo[i].winId = i;
}
vector<int> tmpQue;
int maxCap = N*M, nowCap = ;
for(int t = startTime; t < endTime; ++ t)
{
for(int i = ; i < N; ++ i)
{
while(!winInfo[i].winQue.empty() && winInfo[i].winQue.front() <= t)
{
winInfo[i].winQue.pop();
nowCap --;
}
}
while(nowCap < maxCap)
{
sort(winInfo.begin(), winInfo.end(), cmp);
tmpNum = allCustQue.cusQue[allCustQue.index++] + winInfo[].lastTime;
if(winInfo[].lastTime < endTime)
cusTime[allCustQue.index] = tmpNum;
winInfo[].winQue.push(tmpNum);
winInfo[].lastTime = tmpNum;
nowCap ++;
if(allCustQue.index >= K)
{
t = endTime;
break;
}
}
}
for(int i = ; i < Q; ++ i)
{
cin >> tmpNum;
if(cusTime[tmpNum] >= startTime)
{
tmpNum = cusTime[tmpNum];
printf("%02d:%02d\n", tmpNum/, tmpNum%);
}
else
cout << "Sorry" << endl;
}
return ;
}

PAT 2011 秋的更多相关文章

  1. PAT 2019 秋

    考试的还行.不过略微有点遗憾,但是没想到第一题会直接上排序和dfs,感觉这次的题目难度好像是倒着的一样.哈哈哈哈. 第一题实在是搞崩心态,这道题给我的感觉是,可以做,但事实上总是差点啥. 第二题,第三 ...

  2. PAT 2014 秋

    A 1084 Broken Keyboard 注意大小写即可. #include <cstdio> #include <iostream> #include <algor ...

  3. PAT 2018 秋

    A 1148 Werewolf - Simple Version 思路比较直接:模拟就行.因为需要序列号最小的两个狼人,所以以狼人为因变量进行模拟. #include <cstdio> # ...

  4. MIT-6.006算法导论(2011秋)

    L01 Algorithmic Thinking,Peak Finding 算法定义:高效处理大量数据的程序 在学本课之前最好先学习6.042,本课进阶为6.046 本门课的8个主要章节:算法思想.排 ...

  5. 针对局域网IM飞秋(feiq)的开发总结

    先上代码了,通过java代码群发feiq消息: package com.triman.constant; import java.io.IOException; import java.io.Unsu ...

  6. 【Java】几道常见的秋招面试题

    前言 只有光头才能变强 Redis目前还在看,今天来分享一下我在秋招看过(遇到)的一些面试题(相对比较常见的) 0.final关键字 简要说一下final关键字,final可以用来修饰什么? 这题我是 ...

  7. [转帖]PAT 计算机程序设计能力考试

    PAT 计算机程序设计能力考试 https://blog.csdn.net/bat67/article/details/52134211 [官方简介] 计算机程序设计能力考试(Programming ...

  8. PAT 1080 Graduate Admission[排序][难]

    1080 Graduate Admission(30 分) It is said that in 2011, there are about 100 graduate schools ready to ...

  9. 飞秋软件的OA消息接口服务器

    由于单位使用了飞秋,同时也使用了OA,但OA的消息系统没有飞秋方便,所以大多数人还是在用飞秋沟通.但审批等流程又在OA上,所以做了个消息接口服务器,提取OA消息自动发送到飞秋上,大大方便了工作. 正好 ...

随机推荐

  1. ACM-寻宝

    题目描述:寻宝 有这么一块神奇的矩形土地,为什么神奇呢?因为上面藏有很多的宝藏.该土地由N*M个小正方形土地格子组成,每个小正方形土地格子上,如果标有“E”,则表示该格可以通过:如果标有“X”,则表示 ...

  2. JS - 获取页面滚动的高度

    document.documentElement.scrollTop||document.body.scrollTop

  3. 这篇干货让你在零点前完成学术Essay写作

    写论文,做研究,上课,参加课外活动,与他人social...在美国,你会有很多的事情需要你去做,如何将自己的时间平衡的分配到自己的学习生活以及私人生活中,就显得尤为重要,而这些问题也是影响中国学生的重 ...

  4. 第十二篇视图层之视图函数(views)-三件套

    视图层之视图函数(views) 阅读目录(Content) 视图层之视图函数(views) 一个简单的视图 HttpRequest HttpResponse redirect 函数 对比render与 ...

  5. 第二十篇ORM查询与SQL语句

    ORM查询与SQL语句 多表操作 创建模型 实例:我们来假定下面这些概念,字段和关系 作者模型:一个作者有姓名和年龄. 作者详细模型:把作者的详情放到详情表,包含生日,手机号,家庭住址等信息.作者详情 ...

  6. Docker 搭建开源跳板机_jumpserver (运维开源堡垒机_jumpserver) Centos_7.0

    最近看到一个开源项目(jumpserver)  很不错  还是用Docker  部署得 ... 抽了点时间拿来学习一下  部署    分析   简单使用一下  ....好了先搭起来 准备 工作:    ...

  7. UVA - 294 Divisors (约数)(数论)

    题意:输入两个整数L,U(1<=L<=U<=109,U-L<=10000),统计区间[L,U]的整数中哪一个的正约数最多.如果有多个,输出最小值. 分析: 1.求一个数的约数, ...

  8. VMware Workstation 不可恢复错误: (vcpu-0) vcpu-0:VERIFY vmcore/vmm/main/physMem_monitor.c:1123

    在新机器上,启动虚拟机报了个错: 使用VMware® Workstation 11.1.2 build-2780323安装MacOS系统时出现以下错误: VMware Workstation 不可恢复 ...

  9. windows内核安全编程书籍

    windows internals 的中文译本      windows内核原理与实现 版权声明:本文为博主原创文章,未经博主允许不得转载.

  10. tx2系统备份与恢复

    https://blog.csdn.net/ycy_dy/article/details/80493392 https://blog.csdn.net/piaopiaopiaopiaopiao/art ...