hdu 5017
好恶心的题
#include <cstdio>
#include <string.h>
#include <algorithm>
#include <cmath>
#include <set>
using namespace std;
typedef __int64 ll;
struct point{
ll word,priori;
}P[];
char T[][]={ {"Add"},{"Close"},{"Chat"},{"Rotate"},{"Prior"},{"Choose"},{"Top"},{"Untop"}};
int sz,op,always=-;
void per(int x){
point ttt = P[x];
for(int i=x; i>; --i)
P[i]=P[i-];
P[]=ttt;
}
void last(int x){
point ttt= P[x];
for(int i=x; i<sz-; ++i)
P[i]=P[i+];
P[sz-]=ttt;
}
void solve0(){
ll id;
scanf("%I64d",&id);
int loc=-;
for(int i=; i<sz; ++i)
if( P[i].priori == id ){
loc=i; break;
}
if( loc == - ){
P[sz].word=;
P[sz].priori=id;
sz++;
printf("Operation #%d: success.\n",op++);
}else{
printf("Operation #%d: same priority.\n",op++);
}
}
void solve1(){
ll id;
scanf("%I64d",&id);
int loc=-;
for(int i=; i<sz; ++i)
if(P[i].priori==id){
loc=i; break;
}
if(loc==-){
printf("Operation #%d: invalid priority.\n",op++);
}else {
printf("Operation #%d: close %I64d with %I64d.\n",op++,P[loc].priori,P[loc].word);
if(P[loc].priori==always) always=-;
for(int i=loc+; i<sz; ++i)
P[i-]=P[i];
sz--;
}
}
void solve2(){
ll id;
scanf("%I64d",&id);
if(sz==){ ///*****************************
printf("Operation #%d: empty.\n",op++);
}else{
if(always!=-){
for(int i=; i<sz; ++i)
if(P[i].priori==always){
P[i].word+=id; break;
}
}else P[].word+= id;
printf("Operation #%d: success.\n",op++);
}
}
void solve3(){
ll id;
scanf("%I64d",&id);
id--;
if( id< || id >= sz){
printf("Operation #%d: out of range.\n",op++);
}else{
point ttt=P[id];
for(int i=id; i>; --i)
P[i]=P[i-];
P[]=ttt;
printf("Operation #%d: success.\n",op++);
}
}
void solve4(){
if(sz==){
printf("Operation #%d: empty.\n",op++);
}else{
int loc=;
ll hi=-;
for(int i=; i<sz; ++i)
if(P[i].priori>hi) hi=P[i].priori,loc=i;
point ttt=P[loc];
for(int i=loc; i>; --i)
P[i]=P[i-];
P[]=ttt;
printf("Operation #%d: success.\n",op++);
}
}
void solve5(){
ll id;
scanf("%I64d",&id);
int loc=-;
for(int i=; i<sz; ++i)
if(P[i].priori==id){
loc=i; break;
}
if(loc==-){
printf("Operation #%d: invalid priority.\n",op++); return;
}
point ttt=P[ loc ];
for(int i=loc; i>; --i)
P[i]=P[i-];
P[]=ttt;
printf("Operation #%d: success.\n",op++);
}
void solve6(){
ll id;
scanf("%I64d",&id);
int loc=-;
for(int i=; i<sz; ++i)
if(P[i].priori==id){
loc=i; break;
}
if(loc==-){
printf("Operation #%d: invalid priority.\n",op++); return;
}
always=id;
printf("Operation #%d: success.\n",op++);
}
void solve7(){
if(always==-){
printf("Operation #%d: no such person.\n",op++); return;
}
always=-;
printf("Operation #%d: success.\n",op++);
}
int main(){ int cas;
scanf("%d",&cas);
char str[];
for(int cc= ; cc<=cas; ++cc){
int n;
scanf("%d",&n);
always=-;
sz=;op=;
for(int i=; i<n; ++i){
scanf("%s",str);
if(strcmp(str,T[])==) solve0();
else if(strcmp(str,T[])==) solve1();
else if(strcmp(str,T[])==) solve2();
else if(strcmp(str,T[])==) solve3();
else if(strcmp(str,T[])==) solve4();
else if(strcmp(str,T[])==) solve5();
else if(strcmp(str,T[])==) solve6();
else if(strcmp(str,T[])==) solve7();
// printf(".\n");
}
if(always!=-){
for(int i=; i<sz; ++i)
if(P[i].priori==always&&P[i].word!=){
printf("Bye %I64d: %I64d\n",P[i].priori,P[i].word); break;
}
}
for(int i=; i<sz; ++i)
if(P[i].priori!=always&&P[i].word!=){
printf("Bye %I64d: %I64d\n",P[i].priori,P[i].word);
} }
return ;
}
hdu 5017的更多相关文章
- hdu 5017 模拟退火算法
hdu 5017 http://blog.csdn.net/mypsq/article/details/39340601 #include <cstdio> #include <cs ...
- hdu 5017 模拟退火/三分求椭圆上离圆心最近的点的距离
http://acm.hdu.edu.cn/showproblem.php?pid=5017 求椭圆上离圆心最近的点的距离. 模拟退火和三分套三分都能解决 #include <cstdio> ...
- hdu 5017 模拟退火
题意:给出椭球面的立体解析式,要求椭球面上距离原点最近的点的距离 sol:这题要想推公式就
- HDU 5017 Ellipsoid 模拟退火第一题
为了补这题,特意学了下模拟退火算法,感觉算法本身不是很难,就是可能降温系数,步长等参数不好设置. 具体学习可以参见: http://www.cnblogs.com/heaad/archive/2010 ...
- 2014 ACM/ICPC Asia Regional Xi'an Online(HDU 5007 ~ HDU 5017)
题目链接 A题:(字符串查找,水题) 题意 :输入字符串,如果字符串中包含“ Apple”, “iPhone”, “iPod”, “iPad” 就输出 “MAI MAI MAI!”,如果出现 “Son ...
- hdu 5017 Ellipsoid(西安网络赛 1011)
Ellipsoid Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total ...
- HDU - 5017 Ellipsoid(模拟退火法)
Problem Description Given a 3-dimension ellipsoid(椭球面) your task is to find the minimal distance bet ...
- HDU - 5017 Ellipsoid(模拟退火)
题意 给一个三维椭球面,求球面上距离原点最近的点.输出这个距离. 题解 模拟退火. 把\(z = f(x, y)\)函数写出来,这样通过随机抖动\(x\)和\(y\)坐标就能求出\(z\). 代码 / ...
- NOIp2018停课刷题记录
Preface 老叶说了高中停课但是初中不停的消息后我就为争取民主献出一份力量 其实就是和老师申请了下让我们HW的三个人听课结果真停了 那么还是珍惜这次机会好好提升下自己吧不然就\(AFO\)了 Li ...
随机推荐
- Zookeeper(一)-- 简介以及单机部署和集群部署
一.分布式系统 由多个计算机组成解决同一个问题的系统,提高业务的并发,解决高并发问题. 二.分布式环境下常见问题 1.节点失效 2.配置信息的创建及更新 3.分布式锁 三.Zookeeper 1.定义 ...
- cut的用法【转】
cut是一个选取命令,就是将一段数据经过分析,取出我们想要的.一般来说,选取信息通常是针对“行”来进行分析的,并不是整篇信息分析的. (1)其语法格式为:cut [-bn] [file] 或 cut ...
- ScrollView拉到尽头时出现阴影的解决方法
<code class="hljs markdown has-numbering" style="display: block; padding: 0px; col ...
- m2014-architecture-imgserver->Lighttpd Mod_Cache很简单很强大的动态缓存
Lighttpd是一个德国人领导的开源软件,其根本的目的是提供一个专门针对高性能网站,安全.快速.兼容性好并且灵活的web server环境.具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模 ...
- 关于HTML5的十大面试题
1.html5的文档类型和字符集分别是什么? 答:<!doctype html>/<meta charset="UTF-8"> 2.在html5中如何嵌入一 ...
- poj_1204 Trie图
题目大意 给出一个RxC的字符组成的puzzle,中间可以从左向右,从右到左,从上到下,从下到上,从左上到右下,从右下到左上,从左下到右上,从右上到左下,八个方向进行查找字符串. 给出M个字符 ...
- [Web Chart系列之六] canvas Chart 导出图文件
前言 博主正在参加CSDN2013年度博客之星评选,如果这篇文章对您有用,请投他一票: 投票地址:http://vote.blog.csdn.net/blogstaritem/blogstar2013 ...
- 【Java nio】 Blocking nio
package com.slp.nio; import org.junit.Test; import java.io.File; import java.io.IOException; import ...
- LeetCode - Department Highest Salary
题目大概的意思是选出每个Department里工资最高的人的信息并组成相应的表信息 有几个值得注意的地方:1)使用group by语句时,前面的select语句后面的内容只能有两种情况一种是group ...
- url-loader与file-loader
一开始用url-loader的时候,想着为什么npm run build的时候,不能将图片打包到build images的目录下,原来,没有自己看这样的说明: loader 后面 limit 字段代表 ...