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. S7-300位逻辑指令仿真练习 停车场

    第三章 S7-300 指令应用 位逻辑指令 M存储器 在PLC中M存储区(也称位存储区,又称内部存储器标志位(M)存储器区),它属于系统存储区.在你选定具体的CPU型号后,可以查看CPU的技术规格,其 ...

  2. HihoCoder#1052:基因工程

    HihoCoder#1052:基因工程 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho正在进行一项基因工程实验.他们要修改一段长度为N的DNA序列,使得这段 ...

  3. tomcat端口号被占用,且杀进程不能够杀掉解决办法

    在电脑上安装了zookeeper以后,配置好tomcat启动发现端口号8009端口号被占用,报错如下: 采用netstat –ano 查询所有进程查看或者根据端口号查进程netstat -ano |f ...

  4. /和//的区别(python)

    /  除 得到的是浮点数,结果是大数的时候会使用科学计数法 但是 / 会在遇到大数时候运算不准确 因为将两个int相除会产生一个浮点数,并且除法的确切结果不能精确地表示为float. 精确结果必须四舍 ...

  5. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 字体图标(Glyphicons):glyphicon glyphicon-map-marker

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...

  6. sql select 0 字段 某字段是不在指定的表

    sql select 0 字段 转自   关于 select 语句中 0 某字段名字,的意思是:该某字段是不在指定的表中的,那么如果要在子查询中利用这个指定的表,且带有这个字段,那么就用这个方式来添加 ...

  7. P 1017

    转跳点:

  8. HDU 5477: A Sweet Journey

    A Sweet Journey Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) ...

  9. ansible简单部署前端

    pipeline{ agent any parameters { choice(name: 'server_name', choices: ['xx','xx'], description: 'ser ...

  10. 碎碎念(DP)

    链接:https://ac.nowcoder.com/acm/contest/3006/F来源:牛客网 题目描述 在ACM比赛里,除了CE以外都是有效的提交.每一个提交都会有其评测的结果,或是AC,或 ...