博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVA2322和2.2的一些思考-木棍时间问题
阅读量:4143 次
发布时间:2019-05-25

本文共 4055 字,大约阅读时间需要 13 分钟。

题目链接:https://vjudge.net/contest/210716#problem/H
==========一些思考===========
======为什么我的会超时呢=====
(其实我只要不看手机,真的效率就就很可怕了!)
(好的咯...别辜负她们 的期望呀!)
(别看手机!直到40分钟响了未知,然后去洗了衣服或者收拾一下再看手机,你不会失去什么的!!!)
我的思想是,是按照这个比较的没错,然后把数组复制一下,每次都挑选出来符合条件的
但是在面对数据量非常大的时候,就很吃亏了,每次要比较,要转移一次,再转移一次
看网上这个人的代码的思想呢:
比较奇特,对于每一个n
for(i=1;i<n;i++)
for(j=1;j<rnt;j++)【画重点,rnt】
if(长和宽*2)  //不满足条件的话
flag=0;
一直都是正序列的,
查找是2n吧这样。。还是不到n方?  n方吧两重
if(flag==0)
rnt=tmp[i];
也就是一个数组存很多个东西
以rnt的坐标为基准的几组,在里面卡的好好儿的
以rnt和j为坐标的几组,如果新的i这几组的等价关系都不满足的话,把它作为新的,再去存一次。
rnt显然必须要是最大的,如果不是的话打死(划掉)存上。
此外,只是用了sort一次,感觉优先队列每次插入的话更麻烦,每次都要排序的话很容易超时的吧。
用了sort是确保最大优秀的吧。
不然的话,岂不是只能看随机分配的了。

=====附代码========

ac代码

#include 
#include
#include
using namespace std;const int N = 5005;struct stick { int len; int wei;}tmp[N], rec[N];bool cmp(const stick& a, const stick& b) { if (a.len != b.len) return a.len < b.len; else return a.wei < b.wei;}int main() { int cas, n, cnt, begin; scanf_s("%d", &cas); while (cas--) { cnt = 0; memset(tmp, 0, sizeof(tmp)); memset(rec, 0, sizeof(rec)); scanf_s("%d", &n); for (int i = 0; i < n; i++) scanf_s("%d %d", &tmp[i].len, &tmp[i].wei); sort(tmp, tmp + n, cmp);//没用优先队列,而是用的这个。。会简单不少吗 for (int i = 0; i < n; i++) { int flag = 1; for (int j = 0; j < cnt; j++) { if (tmp[i].len >= rec[j].len && tmp[i].wei >= rec[j].wei) { rec[j] = tmp[i]; flag = 0; break; } } if (flag) rec[cnt++] = tmp[i]; } printf("%d\n", cnt); } return 0;}
以及我自己超时了的。。
#include
#include
#include
#include
using namespace std;//PLease!!!//(起码是)在你的事情做完之前,不要理他们。//不要!!!!!!// 2.4基本都关门了也是xxx回来了考虑 和小可爱吃饭吧// 啊啊啊啊啊啊啊111!!!!// 哇哈哈哈先让我笑死吧,果然坚持不下去的时候逼迫自己一把会发现环境真的是太重要了对我而言哇哈哈哈// 哇哈哈哈哈.,, 不要理他们(对)////(if ever)回去写题解,电脑随身携带,或者回去重新打一遍哇哈哈哈//struct stick{ int len; int width; //stick(int len = 0, int width = 0) : //len(len),width(width){} bool operator<( const stick&b)const { return this->len
q; priority_queue
q2; int m; cin >> m; while (m--){ int n; cin >> n; for (int i = 0; i < n; i++) { cin >> sticks[i].len >> sticks[i].width; //输入了这两个 //怎么一起push吗 嗯 q.push(sticks[i]); } //很好,已经完成了数据的初始化 //接下来的数据是按照len长度排序的 int result = 0; while (!q.empty()) { //stick temp1 = q.top(); //q.pop(); //stick temp2 = q.top(); //now that we have known that q/ stick temp1 = q.top(); q.pop(); while (!q.empty()){ // 先把第一个取出来,再跟第一个比较,直到找到第一个的为止。 if (q.top().width > temp1.width)//不乖的宝宝都给我踢出去 { q2.push(q.top()); q.pop(); } else// 乖宝宝,直接踢出去 q.pop(); } //然后,从q2那里转移过来,还是优先队列。 while (!q2.empty()) { q.push(q2.top()); q2.pop(); } result++; // “我已经把你们按照len排起来了,width不这样我也没办法 //result++; //q.push(temp2); //else // else... else...... else //********************that's why i love it do yoyu forget???? //【pop 和push的敏感啊啊啊啊啊啊】。 //每次都pop出来一个吗》?不知 // q.push(temp2); } cout << result << endl; } return 0;}

UVA2322 

难得啊。。。自己独立思考交上去(没错,但是超时了的一题)
那么要学习的地方在哪里呢
小注意(打的时候发现的)
error C2678: 二进制“<”: 没有找到接受“const MyEvent”类型的左操作数的运算符(或没有可接受的转换)
【这个只是少了一个const而已。。。。】
原来是少const限定符把函数设置为const
bool operator<( const stick&b)const
{
return this->len<b.len;//默认是升序的,大顶堆    【不对啊,,大顶,应该后边的大,是我写错了。。
//那么大的时候true,记住就行了
if (len == b.len)
return width <b.width;
}
【只能是小于号,只能是小于号。。(重载的只能是小于号?不知)】
反正,大顶,然后最上面的最大,然后  a<b 嘛。
【专注啊啊啊啊,别去看手机啊啊啊啊】
【看似你脱离了一些东西,其实这就是你在学习/看课本/看书的时候经常有人打扰你的手机啊!】
【别看手机  别看手机 别看手机】
【要考虑到数据量特别大的时候,一点一点赋值过去肯定是会超时的】
【肯定会超时的】
【cmp要const】
=======题外话=========
0202回不来家度日如年的日子还有七天。
其实今天又懂了一点道理..... 这几天徘徊在放弃的边缘,可是车票问题和距离以及没回来的他,很斩钉截铁地把我的后路截断了。每天都能够长大一点点吧,和在家里躺在床上每天一动不动相比。
那就是,不要失去自己的生活。比如洗衣服和收拾桌子和整理,
我才发现其实我浪费在手机上的时间太多了。之前没注意到,其实这和我每一次写作业的时候都忍不住拿起手机, 是一个道理啊。
【哪怕是高效不看手机、专注地学四个小时,回去开心的玩儿也好啊】
但是我的情况一般是【学不下去,看看手机】
【低效地呆了六个小时,没有完成工作,回去继续】
进而挤占其他一些事情,最后自己(是真的!)狼狈不堪
唉。。。自己还是个小妹子啊!!!!怎么可以因为不见人就这么邋遢呢
但其实我的正确打开方式应该是,真的学不下去的时候就去洗衣服和收拾房间吧。
这样又避免看手机,又能防沉迷,又能换脑子啊。
正确的打开方式应该是,明明不会有那么多人找你,哪怕是一个小时看一下下手机也就打消了兴趣了。
很可怕的啊,是不是,少女,如果你也不想看到这么糟糕一天天度日的自己。
反正总是要分出时间做这些事情的
【看比值啊!】
【如果你每天能花一个小时做这些事情然后让自己的心情变得很好的话】
心情很好的学十个小时,
比心情不好的学十一个小时好很多其实
唉。。道理啊
这些东西啊
以后学着学着慢慢就懂了吧
你这么邋遢。。。宁可发呆 都不肯
都不肯收拾寝室洗衣服!!!!!!!!!!!!!

转载地址:http://kmuti.baihongyu.com/

你可能感兴趣的文章
九度:题目1012:畅通工程
查看>>
九度:题目1017:还是畅通工程
查看>>
九度:题目1034:寻找大富翁
查看>>
第六章 背包问题——01背包
查看>>
51nod 分类
查看>>
1136 . 欧拉函数
查看>>
面试题:强制类型转换
查看>>
Decorator模式
查看>>
Template模式
查看>>
Observer模式
查看>>
高性能服务器设计
查看>>
性能扩展问题要趁早
查看>>
MySQL-数据库、数据表结构操作(SQL)
查看>>
OpenLDAP for Windows 安装手册(2.4.26版)
查看>>
图文介绍openLDAP在windows上的安装配置
查看>>
Pentaho BI开源报表系统
查看>>
Pentaho 开发: 在eclipse中构建Pentaho BI Server工程
查看>>
JSP的内置对象及方法
查看>>
android中SharedPreferences的简单例子
查看>>
android中使用TextView来显示某个网址的内容,使用<ScrollView>来生成下拉列表框
查看>>