好恶心的题

#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的更多相关文章

  1. hdu 5017 模拟退火算法

    hdu 5017 http://blog.csdn.net/mypsq/article/details/39340601 #include <cstdio> #include <cs ...

  2. hdu 5017 模拟退火/三分求椭圆上离圆心最近的点的距离

    http://acm.hdu.edu.cn/showproblem.php?pid=5017 求椭圆上离圆心最近的点的距离. 模拟退火和三分套三分都能解决 #include <cstdio> ...

  3. hdu 5017 模拟退火

    题意:给出椭球面的立体解析式,要求椭球面上距离原点最近的点的距离 sol:这题要想推公式就

  4. HDU 5017 Ellipsoid 模拟退火第一题

    为了补这题,特意学了下模拟退火算法,感觉算法本身不是很难,就是可能降温系数,步长等参数不好设置. 具体学习可以参见: http://www.cnblogs.com/heaad/archive/2010 ...

  5. 2014 ACM/ICPC Asia Regional Xi'an Online(HDU 5007 ~ HDU 5017)

    题目链接 A题:(字符串查找,水题) 题意 :输入字符串,如果字符串中包含“ Apple”, “iPhone”, “iPod”, “iPad” 就输出 “MAI MAI MAI!”,如果出现 “Son ...

  6. hdu 5017 Ellipsoid(西安网络赛 1011)

    Ellipsoid Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total ...

  7. HDU - 5017 Ellipsoid(模拟退火法)

    Problem Description Given a 3-dimension ellipsoid(椭球面) your task is to find the minimal distance bet ...

  8. HDU - 5017 Ellipsoid(模拟退火)

    题意 给一个三维椭球面,求球面上距离原点最近的点.输出这个距离. 题解 模拟退火. 把\(z = f(x, y)\)函数写出来,这样通过随机抖动\(x\)和\(y\)坐标就能求出\(z\). 代码 / ...

  9. NOIp2018停课刷题记录

    Preface 老叶说了高中停课但是初中不停的消息后我就为争取民主献出一份力量 其实就是和老师申请了下让我们HW的三个人听课结果真停了 那么还是珍惜这次机会好好提升下自己吧不然就\(AFO\)了 Li ...

随机推荐

  1. partition的分配策略简单代码实现

    先说说partition的好处:Partition的好处是可以并发的获取同类数据,提高效率. 第一步需要实现Partitioner对象. public class ProducerPartitione ...

  2. 【RF库Collections测试】Get Dictionary Items

    Name:Get Dictionary ItemsSource:Collections <test library>Arguments:[ dictionary ]Returns item ...

  3. PyQt4信号与槽

    事件 事件(Events)是GUI程序中很重要的一部分.它由用户或系统产生.当我们调用程序的exec_()方法时,程序就会进入主循环中.主循环捕获事件并将它们发送给相应的对象进行处理.奇趣公司(Tro ...

  4. 【WebService】快速构建WebService示例

    package com.slp.webservice; import javax.jws.WebService; /** * Created by sanglp on 2017/2/25. * 接口 ...

  5. Mac下Python与Kafka的配合使用

    安装并配置Kafka 安装 # brew install kafka 配置 """ zookeeper配置文件/usr/local/etc/kafka/zookeeper ...

  6. node中的对象

    1. class的概念 定义一个class,属性都是private,方法都是public. Hello.js: 使用class index.js: 2. 单例类 使用exports而不是module. ...

  7. java 中的String类型数据添加双引号

    转义符 \ 加上引号   \" <?xml version="1.0"encoding="GBK"?> String temp = &qu ...

  8. log4j 设置将生成的日志进行gz压缩并删除过期日志

    1.准备jar  :log4j-1.2.17.jar,commons-logging-1.2.jar,这2个就可以了,其他关于日志的jar包就不要加进来了,在优先级上会有冲突. 2.定义一个类,继承R ...

  9. Web安全开发建议

    版权声明:原创作品,如需转载,请与作者联系.否则将追究法律责任. Web安全问题,很多时候会被人所忽略,安全漏洞造成了很多不必要的维护和开发任务,产生的问题有时候更是致命的. 实际上,只要我们养成一些 ...

  10. Centos6.8 防火墙设置

    1.指令 vi /etc/sysconfig/iptables 添加以下内容和要开放的端口 # Firewall configuration written by system-config-fire ...