[Swust OJ 603]--吃饺子大王
现在,作为大赛的评委henry,遇到了一个难题,就是他在统计一个小组同学每个人吃饺子数量的时候,这个小组的同学并没有明确的给出自己吃饺子的准确数量,估计是自己吃的太多了数不清了^_^,他们只是给出了与同一组其他组员吃饺子数量上的关系,为了简单起见,只有‘+’‘-’两种数量上的关系。
1
2
3
4
5
6
7
|
6
+ 3 1
+ 1 2
- 2 1
+ 3 1
+ 1 1
|
1
|
2 5
|
#include<iostream>
using namespace std;
#define inf -0x3f3f3f3f
struct node
{
int left, right, cur, num;
char ch;
}date[];
int main()
{
int n, i, j;
while (cin >> n)
{
int max = inf, k = ;
date[].num = , date[].right = ;
for (i = ; i <= n; i++)
{
cin >> date[i].ch >> date[i].left >> date[i].cur;
date[i].right = i;
date[i].num = inf;
}
for (i = ; i <= n; i++)
{
for (j = ; j <= n; j++)
{
if (date[date[j].right].num != inf&&date[date[j].left].num == inf)
{
if (date[date[j].right].ch == '+')
date[date[j].left].num = date[date[j].right].num - date[date[j].right].cur;
else
date[date[j].left].num = date[date[j].right].num + date[date[j].right].cur;
}
else if (date[date[j].right].num == inf&&date[date[j].left].num != inf)
{
if (date[date[j].right].ch == '+')
date[date[j].right].num = date[date[j].left].num + date[date[j].right].cur;
else
date[date[j].right].num = date[date[j].left].num - date[date[j].right].cur;
}
if (date[j].num > max)
max = date[j].num;
}
}
for (i = ; i <= n; i++)
{
if (date[i].num == max)
{
if (k++) cout << ' ';
cout << i;
}
}
cout << endl;
}
return ;
}
然后后来又想到了一点优化,先把输入数据按照多余对象(比谁多)排序,
给每一组数据加上当前成员编号,然后按成员编号,直接按关系式相加就是,具体的看代码~~
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
struct node{
int no, ptr, x;
char v;
bool operator<(const node &tmp)const{
if (ptr != tmp.ptr)
return ptr < tmp.ptr;
return x < tmp.x;
}
}ss[];
int main(){
int n, mpt[], i, k = , maxn = -0x7ffffff;
memset(mpt, , sizeof(mpt));
cin >> n;
for (i = ; i < n; i++){
cin >> ss[i].v >> ss[i].ptr >> ss[i].x;
ss[i].no = i;
}
sort(ss + , ss + n);
for (i = ; i < n; i++){
switch (ss[i].v){
case '+':mpt[ss[i].no] = mpt[ss[i].ptr - ] + ss[i].x; break;
case '-':mpt[ss[i].no] = mpt[ss[i].ptr - ] - ss[i].x; break;
}
}
for (i = ; i < n; i++)
maxn = maxn>mpt[i] ? maxn : mpt[i];
for (i = ; i < n; i++){
if (mpt[i] == maxn){
if (k++) cout << ' ';
cout << i + ;
}
}
cout << endl;
return ;
}
[Swust OJ 603]--吃饺子大王的更多相关文章
- [Swust OJ 589]--吃西瓜(三维矩阵压缩)
题目链接:http://acm.swust.edu.cn/problem/589/ Time limit(ms): 2000 Memory limit(kb): 65535 Description ...
- [Swust OJ 404]--最小代价树(动态规划)
题目链接:http://acm.swust.edu.cn/problem/code/745255/ Time limit(ms): 1000 Memory limit(kb): 65535 Des ...
- [Swust OJ 649]--NBA Finals(dp,后台略(hen)坑)
题目链接:http://acm.swust.edu.cn/problem/649/ Time limit(ms): 1000 Memory limit(kb): 65535 Consider two ...
- <正则吃饺子>:关于java中垃圾回收技术的简单学习总结
知识介绍来自网络,后面会根据继续学习进行补充和适当的修改,谢谢!原文地址:http://www.importnew.com/26821.html#comment-578355 java中的垃圾回收机制 ...
- 写完代码就去吃饺子|The 10th Henan Polytechnic University Programming Contest
河南理工大学第十届校赛 很久没有组队打比赛了,好吧应该说很久没有写题了, 三个人一起玩果然比一个人玩有趣多了... 前100分钟过了4题,中途挂机100分钟也不知道什么原因,可能是因为到饭点太饿了?, ...
- SWUST OJ NBA Finals(0649)
NBA Finals(0649) Time limit(ms): 1000 Memory limit(kb): 65535 Submission: 404 Accepted: 128 Descri ...
- [Swust OJ 1023]--Escape(带点其他状态的BFS)
解题思路:http://acm.swust.edu.cn/problem/1023/ Time limit(ms): 5000 Memory limit(kb): 65535 Descript ...
- [Swust OJ 1125]--又见GCD(数论,素数表存贮因子)
题目链接:http://acm.swust.edu.cn/problem/1125/ Time limit(ms): 1000 Memory limit(kb): 65535 Descriptio ...
- [Swust OJ 1126]--神奇的矩阵(BFS,预处理,打表)
题目链接:http://acm.swust.edu.cn/problem/1126/ Time limit(ms): 1000 Memory limit(kb): 65535 上一周里,患有XX症的哈 ...
随机推荐
- JAVA 对象内存分析
1.jmap -heap pid 或者 jmap -histo pid 2.jmap -dump:file=folder/dumpFileName.txt,format=b pid 3.对3的输出文件 ...
- 自己动手写 ASP.NET MVC 分页 part1
学习编程也有一年半载了,从来没有自己动手写过东西,都是利用搜索软件找代码,最近偶发感慨,难道真的继续做码农??? 突发奇想是不是该自己动手写点东西,可是算法.逻辑思维都太弱了,只能copy网上的代码, ...
- 创建txt格式文本日志
公共方法(可以将其放到类库里边): #region 记录日志 #region 写日志 /// <summary> /// 写日志 /// </summary> /// < ...
- SQLITE 多进程查询出错database is locked
程序比较简单: 父进程查询数据库A表,没有更新操作 子进程同时查询数据库A表,查询出来的内容更新B表. 两个进程都放到while(1)循环中,速度慢的话就是2S执行一次就没有错,执行的速度快的话就会报 ...
- IOS 定位服务与地图的应用开发
1.定位服务 现在的移动设备很多都提供定位服务,IOS设备提供3种不同定位途径: (1)WiFi定位,通过查询一个WiFi路由器的地理位置的信息,比较省电:IPhone,IPod touch和IPad ...
- NET Core个人博客
NET Core重写个人博客站点小结 今天用ASP.NET Core重写了个人博客站点,原来是基于ASP.NET 4.5开发的.重写工作总体很顺利,最后成功发布到Ubunt+Nginx平台上.效果如下 ...
- 第一讲 一个简单的Qt程序分析
本文概要:通过一个简单的Qt程序来介绍Qt程序编写的基本框架与一些Qt程序中常见的概念 #include <QApplication> #include <QPushButton&g ...
- 【数位dp】【HDU 3555】【HDU 2089】数位DP入门题
[HDU 3555]原题直通车: 代码: // 31MS 900K 909 B G++ #include<iostream> #include<cstdio> #includ ...
- CALayer3-层的属性
一.隐式动画属性 * 在前面几讲中已经提到.每个UIView内部都默认关联着一个CALayer,我们可用称这个Layer为Root Layer(根层). 全部的非Root Layer.也就是手动创建的 ...
- TCP传输连接建立与释放详解
一直以来有许多读者朋友对TCP的传输连接建立和释放过程不是很理解,而这又是几乎网络认证中必考的知识点,包括软考.CCNA\CCNP.H3CNA\H3CNE等,为此再把笔者年度巨作,广受好评的——< ...