A Shortest Distance

  题意相当于一个环,找出两点间从不同方向得到的距离中的最小值。

 #include <cstdio>
#include <iostream>
#include <algorithm>
#include <vector> using namespace std;
vector<int> disVec;
int main()
{
int N, tmpDis;
cin >> N;
disVec.resize(N+,);
for(int i = ; i <= N; ++ i)
{
cin >> tmpDis;
disVec[i] = disVec[i-] + tmpDis;
}
cin >> disVec[];
int M, tmpSt, tmpEnd;
cin >> M;
for(int i = ; i < M; ++ i)
{
cin >> tmpSt >> tmpEnd;
if(tmpSt > tmpEnd)
swap(tmpSt, tmpEnd);
tmpDis = min(disVec[tmpEnd]-disVec[tmpSt], disVec[tmpSt]+disVec[]-disVec[tmpEnd]+disVec[N]);
cout << tmpDis << endl;
}
}

B Student List for Course

  课程清单,这个题目有点意思,我是通过把cin,cout 改成printf和scanf让它不超时的

  试过用set会超时,暂时没有想到更好的方法。

 #include <cstdio>
#include <iostream>
#include <algorithm>
#include <set>
#include <string>
#include <vector> using namespace std;
vector<int> disVec;
vector<string> classInfo[];
int main()
{
int N, K, tmpNum, tmpClass;
string tmpStr;
cin >> N >> K;
for(int i = ; i <= N; ++ i)
{
cin >> tmpStr;scanf("%d", &tmpNum);
while(tmpNum--)
{
scanf("%d", &tmpClass);
classInfo[tmpClass].push_back(tmpStr);
}
}
for(int i = ; i <= K; ++ i)
{
vector<string> tmpVec = classInfo[i];
sort(tmpVec.begin(), tmpVec.end());
printf("%d %d\n", i, tmpVec.size());
for(auto it = tmpVec.begin(); it != tmpVec.end(); ++ it)
{
printf("%s\n", (*it).c_str());
}
}
return ;
}

C Find Coins

  因为需要两个硬币,所以可以排序后,用双指针法,从两端向中间找,因为在找到合适两个硬币前,一旦左侧硬币加右侧硬币超过了所需面值,右边这个硬币肯定是不可能满足条件的。

 #include <cstdio>
#include <iostream>
#include <algorithm>
#include <set>
#include <string>
#include <vector> using namespace std;
vector<int> coinVal;
int main()
{
int N, M, tmpVal;
cin >> N >> M;
coinVal.resize(N);
for(int i = ; i < N; ++ i)
cin >> coinVal[i];
int tmpLast = N-;
sort(coinVal.begin(), coinVal.end());
for(int i = ; i < tmpLast; ++ i)
{
while(coinVal[i] + coinVal[tmpLast] > M)
tmpLast --;
if(tmpLast != i && coinVal[i] + coinVal[tmpLast] == M)
{
cout << coinVal[i] << " " << coinVal[tmpLast];
return ;
}
}
cout << "No Solution";
return ;
}

D Counting Ones

  这个题目需要先利用数学知识找一下规律,会发现每一位产生的1的个数是有规律的,见代码while循环部分。

  (其中numArray[i]是第i位数值,multBase是0-9、0-99、0-999...中包含1的个数,digitBase是0,10,100,1000...)

 #include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <string>
#include <vector> using namespace std;
int charToNum(char c)
{
return c-'';
}
int n;
char numStr[];
int numArray[];
int len;
int numDeal(int tmpN)
{
int tmpNum = ;
int digitBase = ;
int multBase = ;
while(tmpN >= )
{
if(numArray[tmpN] == )
{
tmpNum += numArray[tmpN] * multBase + n%digitBase+;
}
else if(numArray[tmpN] > )
{
tmpNum += numArray[tmpN] * multBase + digitBase;
}
multBase = * multBase + digitBase;
digitBase *= ;
tmpN--;
}
return tmpNum;
}
int main()
{ cin >> n;
sprintf(numStr, "%d", n);
len = strlen(numStr);
for(int i = ; i < len; ++ i)
numArray[i] = charToNum(numStr[i]);
int num = numDeal(len-);
cout << num;
return ;
}

PAT 2012 冬的更多相关文章

  1. Windows server 2012 添加中文语言包(英文转为中文)(离线)

    Windows server 2012 添加中文语言包(英文转为中文)(离线) 相关资料: 公司环境:亚马孙aws虚拟机 英文版Windows2012 中文SQL Server2012安装包,需要安装 ...

  2. Windows Server 2012 NIC Teaming介绍及注意事项

    Windows Server 2012 NIC Teaming介绍及注意事项 转载自:http://www.it165.net/os/html/201303/4799.html Windows Ser ...

  3. 1.初始Windows Server 2012 R2 Hyper-V + 系统安装详细

    干啥的?现在企业服务器都是分开的,比如图片服务器,数据库服务器,redis服务器等等,或多或少一个网站都会用到多个服务器,而服务器的成本很高,要是动不动采购几十台,公司绝对吃不消的,于是虚拟化技术出来 ...

  4. 0.Win8.1,Win10,Windows Server 2012 安装 Net Framework 3.5

    后期会在博客首发更新:http://dnt.dkill.net 网站部署之~Windows Server | 本地部署:http://www.cnblogs.com/dunitian/p/482280 ...

  5. windows 2012 r2 can't find kb2919355

    问题   解决: 1.手动安装了 Windows8.1-KB2919442-x64 2.手动下载 KB2919355 更新成功     Turns out to have been a result ...

  6. Windows Server 2012 磁盘管理之 简单卷、跨区卷、带区卷、镜像卷和RAID-5卷

    今天给客户配置故障转移群集,在Windows Server 2012 R2的系统上,通过iSCSI连接上DELL的SAN存储后,在磁盘管理里面发现可以新建 简单卷.跨区卷.带区卷.镜像卷.RAID-5 ...

  7. VMware下Windows Server 2012添加新磁盘

    系统管理员在VM下新装了一台Windows Server 2012服务器,我在上面安装了SQL Server 2014 Standard版数据库,安装之初,只分配了一个C盘,我想在这台服务器上添加了三 ...

  8. 在Windows Server 2012中如何快速开关桌面上经典的“计算机、我的文档”等通用图标

    我们都知道,在Windows Server 2012系列的服务器版本中都已经引入了Modern的现代界面作为默认的用户交互界面,同时满足视觉一致化,新版的服务器管理程序也做成了扁平化.因此传统的计算机 ...

  9. 《转载》PAT 习题

    博客出处:http://blog.csdn.net/zhoufenqin/article/details/50497791 题目出处:https://www.patest.cn/contests/pa ...

随机推荐

  1. tomcat报错catalina.sh: line 401: /usr/java/jdk1.7.52/bin/java: No such file or directory(转)

    原文:https://blog.csdn.net/reblue520/article/details/52588825 将生产服务器的Tomcat目录打包过来后解压后,启动Tomcat后,发现如下问题 ...

  2. day05-Python运维开发基础(双层循环、pass/break/continue、for循环)

    # ### 双层循环练习 # 十行十列小星星 j = 0 while j<10: # 逻辑代码写在下面 # 打印一行十个小星星 i = 0 while i<10: print(" ...

  3. 045、Java中使用if语句进行判断

    01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...

  4. ErrorCode=-2147217900 表已存在.

    ErrorCode=-2147217900 表已存在. 在导出excel时遇到这个问题. 原因是dataTable的TableName中有减号 "-"

  5. SwiftUI中多设备运行方法

    https://blog.csdn.net/weixin_42679753/article/details/94465674 https://www.jianshu.com/p/17fc7929fcb ...

  6. Consul 简介及集群安装

    简介 Consul是基于GO语言开发的开源工具,主要面向分布式,服务化的系统提供服务注册.服务发现和配置管理的功能. Consul的功能都很实用,其中包括:服务注册/发现.健康检查.Key/Value ...

  7. net.sf.json.JSONObject maven下载到了但是java后台一直用不了问题

    需求,实体转JSON,然后用到JSONObject转JSON,但是我向下面这样引入,后台就是用不了,还是报红, <dependency> <groupId>net.sf.jso ...

  8. 08 SSM整合案例(企业权限管理系统):09.用户和角色操作

    04.AdminLTE的基本介绍 05.SSM整合案例的基本介绍 06.产品操作 07.订单操作 08.权限控制 09.用户和角色操作 10.权限关联 11.AOP日志 09.用户和角色操作 1. 用 ...

  9. (一)微信小程序环境搭建

    1 注册 首先 打开(https://mp.weixin.qq.com/)微信公众平台官网 选着 小程序 之后 在新的页面选择 选着前往注册 按照提示注册 注意:个人版和企业版有一定的区别 2 开发者 ...

  10. Centos7搭建SVN服务

    1.安装 subversion ​[root@CentOS var]# yum -y install subversion 2.创建 svn 版本库,初始化相关配置文件 ​[root@CentOS v ...