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. Windows Server 2008 R2 ntoskrnl.exe 引起蓝屏故障,重新启动

    前不久在HP ProLiant DL360 G6的服务器上面安装了Windows Server 2008 R2,系统一到晚上凌晨就出现蓝屏.重启现象,并且在 C:\Windows\Minidump 目 ...

  2. 《Java面试全解析》1000道面试题大全详解(转)

    <Java面试全解析>1000道 面试题大全详解 本人是 2009 年参加编程工作的,一路上在技术公司摸爬滚打,前几年一直在上海,待过的公司有 360 和游久游戏,因为自己家庭的原因,放弃 ...

  3. 小程序跳坑之JSON字符串转换JSON对象

    常见的JSON字符串转换有很多,这里只讲我遇到过的小程序中用到的转换. 通常我们在小程序中用到的地方是,请求一个数据表或者请求一个接口,拿到了一堆数据,里面包含有各种字段数组,头像,图片,详情,地址, ...

  4. SpringBoot学习(五)——Profile

    Profile是Spring对不同环境(例如开发人用开发环境,测试人员用测试环境)提供不同配置功能的支持,可以通过激活,指定参数等方式快速切换环境 1.多profile文件形式 格式:applicat ...

  5. 数据结构必做题参考:实验一T1-20,实验2 T1

    实验一T1-10 #include <bits/stdc++.h> using namespace std; ; struct Book { string isbn; string nam ...

  6. c++程序—布尔值

    #include<iostream> using namespace std; #include<string> int main() { //创建bool数据类型 bool ...

  7. Windows操作系统安装JDK环境

    Windows操作系统安装JDK环境 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一. Java常见的术语 1>.什么是JVM  只要在需要运行Java应用程序的操作系统上 ...

  8. UVA - 11149 Power of Matrix(矩阵倍增)

    题意:已知N*N的矩阵A,输出矩阵A + A2 + A3 + . . . + Ak,每个元素只输出最后一个数字. 分析: A + A2 + A3 + . . . + An可整理为下式, 从而可以用lo ...

  9. HDU - 1114 Piggy-Bank(完全背包讲解)

    题意:背包重量为F-E,有N种硬币,价值为Pi,重量为Wi,硬币个数enough(无穷多个),问若要将背包完全塞满,最少需要多少钱,若塞不满输出“This is impossible.”. 分析:完全 ...

  10. UVA - 1647 Computer Transformation(计算机变换)(找规律)

    题意:初始串为一个1,每一步会将每个0改成10,每个1改成01,因此1会依次变成01,1001,01101001,……输入n(n<=1000),统计n步之后得到的串中,"00" ...