POJ1003/1004/1005/1207/3299/2159/1083/3094/2388解题(刷一波水题)

POJ 1003

这里写图片描述
题目链接
http://poj.org/problem?id=1003
大意:长度=1/2+1/3+…+1/n,给定长度值,求n

#include<iostream>
using namespace std;
int main()
{float len = 0,sum;int n;while(cin >> len && len != 0){for(n=2,sum=0;sum<len;++n){sum += 1/(n*1.0);}cout << n-2 << " " << "card(s)" << endl;}return 0;
}

POJ 1004

这里写图片描述
题目链接
http://poj.org/problem?id=1004
大意:求平均数

#include<iostream>
using namespace std;
int main()
{float money,avgmoney=0;int i = 0;while(cin >> money && i != 12){avgmoney += money;++i;}cout << "$" << avgmoney/12 << endl;
}

POJ 1005

这里写图片描述
题目链接
http://poj.org/problem?id=1005
大意:求一个点什么时候被慢慢变大的半圆吃掉

#include<iostream>
using namespace std;
#define PI 3.141592654
int main()
{double X,Y;double area,distance,dangerdistance;int year;int N;cin >> N;for(int i = 1; i <= N; ++i){cin >> X >> Y;distance = X*X+Y*Y;dangerdistance=0;  //之前没有写这句,没有初始化,踩过好几次地雷了!!!!!!!!for(area = 0,year =0; dangerdistance <= distance; ++year){area += 50;dangerdistance = 2*area/PI;}cout << "Property " << i << ": This property will begin eroding in year " << year << "." << endl;}cout << "END OF OUTPUT.";return 0;
}

POJ 1207

这里写图片描述
题目链接
http://poj.org/problem?id=1207
大意:有一个数,按那个规则,最后能够转换到1,算出这个序列的长度,然后输入两个数,在这两个数构成的闭区间中,每个数都有其序列长度,求这个序列中最长的一个。

#include<iostream>
using namespace std;
int main()
{int a,b;while(cin >> a >> b){cout << a << " " << b << " " ;//坑,要先输出a,b,如果调换了,输出就颠倒了if(a > b)swap(a,b);int maxcyclen=0;int cyctime=0;int num=0;for(int i = a,j=0; i <= b; ++i,++j){num = i;cyctime=1;while(num != 1){if(num%2==1){num = 3*num+1;}else{num /= 2;}++cyctime;}if(maxcyclen < cyctime){maxcyclen = cyctime;}}cout << maxcyclen << endl;}return 0;
}

POJ 3299

这里写图片描述
题目链接
http://poj.org/problem?id=3299
大意:公式推导,给任意两个,求第三个。(注意输入顺序)

#include<iostream>
using namespace std;
#include<iomanip>
#include<math.h>int main()
{cout << setiosflags(ios::fixed) << setprecision(1);//需要头文件#include <iomanip>,小数点精度1位double t,d,h,num1,num2;char alpha,beta;while(cin >> alpha && alpha != 'E'){cin >> num1 >> beta >> num2;if(alpha=='T'&&beta=='D' || alpha=='D'&&beta=='T'){t = num1;d = num2;if(alpha=='D')//输入顺序变了,名称与内容不符,换回来swap(t,d);h=t+0.5555*(6.11*exp(5417.7530*((1/273.16)-(1/(d+273.16))))-10);}else if(alpha=='T'&&beta=='H' || alpha=='H'&&beta=='T'){t = num1;h = num2;if(alpha=='H') //输入顺序变了,名称与内容不符,换回来swap(t,h);d=1/(1/273.16-log(((h-t)/0.5555+10.0)/6.11)/5417.7530)-273.16;;}else if(alpha=='D'&&beta=='H' || alpha=='H'&&beta=='D'){d = num1;h = num2;if(alpha=='H') //输入顺序变了,名称与内容不符,换回来swap(d,h);t=h-0.5555*(6.11*exp(5417.7530*((1/273.16)-(1/(d+273.16))))-10.0);}	cout << "T " << t << " D " << d << " H " << h << endl; }return 0;
}

POJ 2159

这里写图片描述

题目链接
http://poj.org/problem?id=2159
大意:
1.一串字符串(大写字母),每个字母可以按照一个数平移成另一个字母
2.每一个字符加密后,再乱序
3.给定A,B两个字符串,求A是否可能是B的密文

之前题目理解错了,以为每个字母都是平移1位(按照示例的理解)

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{int secretnum = 1;	//移动的位数(每个都一样)char word1,word2;vector<char> secrettext,origintext;while(cin.get(word1)){if(word1 == '\n')break;if(word1 >= 'A' && word1 <= 'Z'){word1 = word1 - secretnum;if(word1 < 'A')word1 = word1 + 26;secrettext.push_back(word1);}else{continue;}}while(cin.get(word2)){if(word2 == '\n')break;if(word2 >= 'A' && word2 <= 'Z'){origintext.push_back(word2);}else{continue;}}sort(secrettext.begin(),secrettext.end());//字母升序排序sort(origintext.begin(),origintext.end());//字母升序排序for(int i = 0;i != secrettext.size();++i){if(secrettext[i] != origintext[i]){cout << "NO" ;return 0;}}cout << "YES" ;//都升序排列后,每一位都相等则ok(题目没说都移动同样位数,解答错误)return 0;
}

正确的解答

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{char word1, word2;int secrettext[26]={0}, origintext[26]={0};while(cin.get(word1)){if(word1 == '\n')break;if(word1 >= 'A' && word1 <= 'Z'){++secrettext[word1-'A'];    //统计每个字符的频次存入数组}else{continue;}}while(cin.get(word2)){if(word2 == '\n')break;if(word2 >= 'A' && word2 <= 'Z'){++origintext[word2-'A'];    //统计每个字符的频次存入数组}else{continue;}}sort(secrettext,secrettext+26); // 对频次进行排序sort(origintext,origintext+26); // 对频次进行排序for(int i = 0;i != 26;++i){if(secrettext[i] != origintext[i]){cout << "NO" ;return 0;}}cout << "YES" ; //频次完全一致,则每个字符经过一定平移即可得到第二行的字符串return 0;
}

POJ 1083

这里写图片描述
题目链接
http://poj.org/problem?id=1083
这里写图片描述
大意:
1.400个房间,从一个房间移动1张桌子到另一个房间,需要10分钟。
2.过道只能有一张桌子,包含门前的位置,被占用的时候,其它需要经过的移动需要等待,不能同时进行。
解法:
1.申请200大小的数组代表门前的过道,从房间m到房间n,(m < n),则 ( m - 1 ) /2 到(n - 1)/ 2 的元素都加10;
2.扫描数组,最大的元素即为搬运的时间。

#include<iostream>
#include<cstring>
using namespace std;
int main()
{int testtime, table, roomid1, roomid2;int corridor[200]={0}, corridor_id, maxtime;cin >> testtime;while(testtime--){memset(corridor,0,sizeof(corridor)); //清零初始化(不能写corridor[200]={0};只能定义的时候写一次),memset需要cstring头文件//经测试,单独写的corridor[200]={0};对数组没有任何操作,编译器可能不报错,需要避开这个坑!!!cin >> table;while(table--){cin >> roomid1 >> roomid2;if(roomid1 > roomid2)swap(roomid1,roomid2);for(corridor_id = (roomid1-1)/2; corridor_id <= (roomid2-1)/2; ++corridor_id){corridor[corridor_id] += 10;}}maxtime = 0;for(corridor_id = 0; corridor_id != 200; ++corridor_id){if(maxtime < corridor[corridor_id])maxtime = corridor[corridor_id];}cout << maxtime << endl;}
}

POJ 3094

这里写图片描述
题目链接
http://poj.org/problem?id=3094
大意:
每一行字符串包括空格,经过对每个字符乘以系数,然后加总求和。
例如: ACM:1 * 1 + 2 * 3 + 3 * 13 = 46 (A=1,B=2,…空格=0)
MID CENTRAL:1 * 13 + 2 * 9 + 3 * 4 + 4 * 0 (空格占位置)+ 5 * 3 + 6 * 5 + 7 * 14 + 8 * 20 + 9 * 18 + 10 * 1 + 11 * 12 = 650

#include<iostream>
using namespace std;
int main()
{char alpha;int quicksum = 0;while(cin.get(alpha) ){if(alpha == '#')break;quicksum = 0;for(int i = 1; alpha != '\n';++i){if(alpha != ' ')quicksum = quicksum + i*(alpha-'A'+1);cin.get(alpha);  //cin.get()可以捕捉空格, cin >> char 不可以捕捉空格回车}cout << quicksum << endl;}
}

POJ 2388

这里写图片描述
题目链接
http://poj.org/problem?id=2388
大意:求中位数,简单。

#include<iostream>
#include<algorithm>
using namespace std;
int main()
{int num;cin >> num;int *milk = new int[num];for(int i = 0; i != num; ++i){cin >> milk[i];}sort(milk,milk+num);cout << milk[num/2];delete [] milk;milk = NULL;return 0;
}

在这里插入图片描述

/*** @description: poj2388 求中位数* @author: michael ming* @date: 2019/5/31 0:12* @modified by: */
#include <algorithm>
#include <iostream>
#include <vector>
#include <functional>
using namespace std;
int main()
{int N, num, i = 0;cin >> N;vector<int> maxheap, minheap;while(i++ < N && cin >> num){if(maxheap.empty()){maxheap.push_back(num);continue;}//----选择插入哪个堆-----if(!maxheap.empty() && num <= maxheap[0]){maxheap.push_back(num);push_heap(maxheap.begin(),maxheap.end());//默认采用 < , 大堆}else if(!maxheap.empty() && num > maxheap[0]){minheap.push_back(num);push_heap(minheap.begin(),minheap.end(),greater<int>());//小堆,采用 >}//----平衡两个堆的节点比列----if(maxheap.size() > minheap.size() && maxheap.size() - minheap.size() > 1){minheap.push_back(maxheap[0]);//大堆顶进入小堆push_heap(minheap.begin(),minheap.end(),greater<int>());pop_heap(maxheap.begin(),maxheap.end());//堆顶到末尾了maxheap.pop_back();//删除到末尾的"堆顶"}else if(maxheap.size() < minheap.size()){maxheap.push_back(minheap[0]);push_heap(maxheap.begin(),maxheap.end());//默认采用 < , 大堆pop_heap(minheap.begin(),minheap.end(),greater<int>());minheap.pop_back();}}if(maxheap.size())cout << maxheap[0] << endl;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/480575.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

论文浅尝 | 远程监督关系抽取的生成式对抗训练

动机远程监督关系抽取方法虽然可以使用知识库对齐文本的方法得到大量标注数据&#xff0c;但是其中噪声太多&#xff0c;影响模型的训练效果。基于 bag 建模比基于句子建模能够减少噪声的影响&#xff0c;但是仍然无法克服 bag 全部是错误标注的情形。为了换机噪声标注&#xf…

谷歌最强NLP模型BERT官方代码来了!GitHub一天3000星

新智元报道 来源&#xff1a;GitHub 作者&#xff1a;Google Research 编辑&#xff1a;肖琴 【新智元导读】谷歌AI团队终于开源了最强NLP模型BERT的代码和预训练模型。从论文发布以来&#xff0c;BERT在NLP业内引起巨大反响&#xff0c;被认为开启了NLP的新时代。 BERT的官方…

Java经典基础与高级面试36题和答案

在Java面试的首轮&#xff0c;经常会问很多关于Java面试基础以及高级的问题&#xff0c;今天收集相关Java面试36题和答案分享出来。 1.”static”关键字是什么意思&#xff1f;Java中是否可以覆盖&#xff08;override&#xff09;一个private或者是static的方法&#xff1f; …

论文浅尝 | 问题生成(QG)与答案生成(QA)的结合

本文转载自公众号&#xff1a;徐阿衡。梳理一下 MSRA 3 篇关于 QG 的 paper&#xff1a;Two-Stage Synthesis Networks for Transfer Learning in Machine ComprehensionQuestion Answering and Question Generation as Dual TasksA Joint Model for Question Answering and Qu…

卖萌屋算法岗面试手册上线!通往面试自由之路

一只小狐狸带你解锁 炼丹术&NLP 秘籍作为算法工程师&#xff0c;基础知识的重要性自然不必多说。虽然在有些项目中比较难感受到基础的作用&#xff0c;但扎实的coding能力&#xff0c;对算法本质和适用情况的理解&#xff0c;始终是决定工作效率与未来发展的重要feature。这…

2019头条抖音Java 3面真题,含面试题答案!

一面&#xff1a; hashmap&#xff0c;怎么扩容&#xff0c;怎么处理数据冲突&#xff1f;怎么高效率的实现数据迁移&#xff1f; Linux的共享内存如何实现&#xff0c;大概说了一下。 socket网络编程&#xff0c;说一下TCP的三次握手和四次挥手 同步IO和异步IO的区别&#…

深入理解XGBoost

本文的主要内容概览&#xff1a;1 XGBoost简介XGBoost的全称是eXtreme Gradient Boosting&#xff0c;它是经过优化的分布式梯度提升库&#xff0c;旨在高效、灵活且可移植。XGBoost是大规模并行boosting tree的工具&#xff0c;它是目前最快最好的开源 boosting tree工具包&am…

会议 | ESWC2018 见闻

本文转载自公众号&#xff1a;南大Websoft 。 ESWC2018于2018年6月2日在希腊克里特岛上的伊拉克利翁举行。会议包括两天的前会(workshops, tutorials) 和三天的正会&#xff0c;参会人数约300人。KeynotesKeynote1: Structural S…

POJ 1804 逆序数 解题(归并排序)

文章目录解法1&#xff1a;直接双重循环求解&#xff0c;n*n复杂度解法2&#xff1a;采用归并排序求解&#xff0c;复杂度nlgn题目链接 http://poj.org/problem?id1804题目大意&#xff1a;让一串无序数&#xff0c;在只能相邻数字交换的前提下&#xff0c;最短的次数变成有序…

史上最全memcached面试26题和答案

Memcached是什么&#xff0c;有什么作用&#xff1f; Memcached是一个开源的&#xff0c;高性能的内存绶存软件&#xff0c;从名称上看Mem就是内存的意思&#xff0c;而Cache就是缓存的意思。Memcached的作用&#xff1a;通过在事先规划好的内存空间中临时绶存数据库中的各类数…

深度学习笔记(六):Encoder-Decoder模型和Attention模型

版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主允许不得转载。 https://blog.csdn.net/u014595019/article/details/52826423 </div><link rel"stylesheet" href"https://csdnimg.cn/release/phoenix/template/css/ck_h…

会议 | 2018年全国知识图谱与语义计算大会(CCKS 2018)

2018年全国知识图谱与语义计算大会China Conference on Knowledge Graph and Semantic Computing (CCKS 2018)2018年8月14日-17日&#xff0c;天津征稿截止: 2018年5月18日全国知识图谱与语义计算大会&#xff08;CCKS: China Conference on Knowledge Graph and Semantic Comp…

C++ Primer 第11章 泛型算法 学习总结

文章目录11.2 算法11.2.1 只读算法**1.find函数****2.accumulate函数****3.find_first_of 函数**11.2.2 写容器元素算法1.fill函数2.fill_n函数3.back_inserter插入迭代器4.copy函数5.算法的 _copy 版本11.2.3 排序算法sort&#xff08;起始&#xff0c;结束&#xff09;&#…

到底什么是生成式对抗网络GAN?

时间&#xff1a;2017-05-11 男&#xff1a;哎&#xff0c;你看我给你拍的好不好&#xff1f; 女&#xff1a;这是什么鬼&#xff0c;你不能学学XXX的构图吗&#xff1f; 男&#xff1a;哦 …… 男&#xff1a;这次你看我拍的行不行&#xff1f; 女&#xff1a;你看看你的…

分布式缓存Redis+Memcached经典面试题和答案

Redis相比memcached有哪些优势&#xff1f; &#xff08;1&#xff09; memcached所有的值均是简单的字符串&#xff0c;redis作为其替代者&#xff0c;支持更为丰富的数据类型 &#xff08;2&#xff09; redis的速度比memcached快很多 &#xff08;3&#xff09; redis可以…

卖萌屋福利场:《机器阅读理解》免费送送送!

一只小狐狸带你解锁 炼丹术&NLP 秘籍在送书之前&#xff0c;先来了解一下机器阅读理解是什么&#xff5e;已经很熟悉的小伙伴可以快速下拉进入福利场~机器阅读理解是什么机器阅读理解&#xff08;Machine Reading Comprehension&#xff0c;MRC&#xff09;是一种利用算法使…

CCKS 2018 | 工业界论坛报告简介

China Conference on Knowledge Graph and Semantic Computing 天津&#xff0c;2018年8月14日-8月17日主题1&#xff1a;智能交互中的知识图谱时间&#xff1a;2018.08.17 &#xff08;14:00-15:00&#xff09;地点&#xff1a;天津滨海一号大会场报告1&#xff1a;报告题目&a…

BAT Java面试笔试33题:JavaList、Java Map等经典面试题!答案汇总!

JavaList面试题汇总 1、List集合&#xff1a;ArrayList、LinkedList、Vector等。 2、Vector是List接口下线程安全的集合。 3、List是有序的。 4、ArrayList和LinkedList数据结构不一样&#xff0c;前者用在查询较多的场合&#xff0c;后者适用于插入较多的场合。 5、ArrayL…

基于在线百科知识库的多义词词义消歧项目

WordMultiSenseDisambiguation WordMultiSenseDisambiguation, chinese multi-wordsense disambiguation based on online bake knowledge base and semantic embedding similarity compute,基于百科知识库的中文词语多义项获取与特定句子词语语义消歧. 项目地址:https://gith…

文本查询TextQuery类文件编写

读取用户指定的任意文本文件&#xff0c;然后允许用户从该文件中查找单词。查询的结果是该单词出现的次数&#xff0c;并列出每次出现所在的行。如果某单词在同一行中多次出现&#xff0c;程序将只显示该行一次。行号按升序显示&#xff0c;即第 7 行应该在第 9 行之前输出&…