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. 51nod 1293:球与切换器

    1293 球与切换器 题目来源: Codility 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题  收藏  取消关注 有N行M列的正方形盒子.每个盒子有三种状态0 ...

  2. mysql基本知识的总结

    Mysql基本sql知识 Navicat快捷方式: 选中当前行 在行尾:shift+home 在行首:shift+end 执行当前行:ctrl+shift+R 复制当前行:ctrl+D 显示所有数据库 ...

  3. Spring源码分析——(001)环境搭建

    1.官方参考 spring-framework的github链接:https://github.com/spring-projects/spring-framework 源码环境搭建官方参考1:考如何 ...

  4. Python的一些常用知识

    1.How to force urllib2 not to use a proxy Here is an example to remove proxy settings for all reques ...

  5. Oracle 查询当前用户下的所有表

    select table_name from user_tables;

  6. 云时代架构阅读笔记一——Java性能优化(一)

    Java语言学习了这么长时间之后,自己对于Java编程的一些细节还是稍微有点总结,正好根据云时代架构中<Java高级开发必会的50个性能优化的细节(珍藏版)>来叙述一些我和里面的点比较相符 ...

  7. 150-PHP nl2br函数(一)

    <?php $str="h t m l"; //定义一个多处换行的字串 echo "未处理前的输出形式:<br />{$str}"; #nl2 ...

  8. java基础源码 (4)--reflect包-AnnotatedElement接口

    接口:AnnotatedElement * Represents an annotated element of the program currently running in this * VM. ...

  9. HDFS 中文件操作的错误集锦

    问题1  Java ApI执行追加写入时:无法写入 问题描述: ①当前数据节点无法写入,②追加文件需要再次请求. 问题2  命令行执行追加写入时:无法写入 问题描述: 当前数据节点无法写入 问题3   ...

  10. P 1026 程序运行时间

    转跳点: