2014-05-25 记录

今天神坑的GCPC 2013 B题啊,本来是个很简单的模拟+扫描线,却WA的不明不白

经过几个人测试,不得不说一下,CSU OJ 的编译器肯定有点问题

coj 1458


#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int b,c;
struct node{
int y,m,d,h,s;
}st[5010],te[5010];
struct line{
int y,m,d,h,s,v;
}tl[10100];
int month[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
bool cmp(line w,line r)
{
if (w.y==r.y){
if (w.m==r.m){
if (w.d==r.d){
if (w.h==r.h){
if (w.s==r.s){
return w.v<r.v;
}
return w.s<r.s;
}
return w.h<r.h;
}
return w.d<r.d;
}
return w.m<r.m;
}
return w.y<r.y;
}
void init(int i)
{
int ny,nm,nd,nh,ns,t;
ns=te[i].s+c;
t=ns/60;
ns%=60;

nh=te[i].h+t;
t=nh/24;
nh%=24;

nd=te[i].d+t;
if (te[i].y==2016 && te[i].m==2){
if (nd>29) {t=1;nd-=29;}
else t=0;
}
else {
if (nd>month[te[i].m]){nd-=month[te[i].m];t=1;}
else t=0;
}

nm=te[i].m+t;
if (nm>12) {nm-=12;t=1;}
else t=0;

ny=te[i].y+t;
te[i].y=ny;te[i].m=nm;te[i].d=nd;
te[i].h=nh;te[i].s=ns;
}
int main()
{
int t;
char ch[25];
scanf("%d",&t);
while (t--){
scanf("%d%d",&b,&c);
for (int i=0;i<b;i++){
scanf("%s",ch);
scanf("%d-%d-%d %d:%d",&st[i].y,&st[i].m,&st[i].d,&st[i].h,&st[i].s);
scanf("%d-%d-%d %d:%d",&te[i].y,&te[i].m,&te[i].d,&te[i].h,&te[i].s);
init(i);
}
int cnts=0;
for (int i=0;i<b;i++){
tl[cnts++]=(line){st[i].y,st[i].m,st[i].d,st[i].h,st[i].s,1};
tl[cnts++]=(line){te[i].y,te[i].m,te[i].d,te[i].h,te[i].s,-1};
}
sort(tl,tl+cnts,cmp);
int sum=0,ans=0;
cnts=2*b; //这里如果不加,在coj上就连样例都跑不过
//cout<<"cnts= "<<cnts<<endl;
for (int k=0;k<cnts;k++){
sum+=tl[k].v;
ans=max(ans,sum);
}
printf("%d\n",ans);
cout<<"cnts= "<<cnts<<endl;
}
return 0;
}

实际那个
cnts肯定是等于2*b的,毋庸置疑,coj有个test功能,可以用来检测样例,发现cnts没错,但是就是进不去最下面那个循环,一定要加一句强制使得他等于2*b才能样例正确,但实际我不加
,在本地的codeblocks上跑的好好的,测试数据全部可以跑过去,一提交到COJ,就0msWA,说明连样例都没跑过去。,,,坑啊,我到现在还没弄明白怎么会这样,反正绝壁编译器有点什么。。

题目在前期处理比较繁琐,但是也不是很难做,然后后面用扫描线,还是聪哥想到的扫描线,我之前也做过,都没想起来用扫描线。

COJ 1453


#include <iostream>
#include <cstdio>
#include <cstring>
#include <vector>
#define N 100010
#define lson rt<<1,l,mid
#define rson rt<<1|1,mid+1,r
using namespace std;
int n,k;
int d[N*3];
int query(int L,int R,int rt,int l,int r)
{
if (L<=l && r<=R){
return d[rt];
}
int mid=(l+r)>>1;
int ret1=0,ret2=0;
if (L<=mid) ret1=query(L,R,lson);
if (R>mid) ret2=query(L,R,rson);
return max(ret1,ret2);
}
void up(int rt)
{
d[rt]=max(d[rt<<1],d[rt<<1|1]);
}
void inserts(int loc,int val,int rt,int l,int r)
{
if (l>=r){
d[rt]=max(d[rt],val);
return;
}
int mid=(l+r)>>1;
if (loc<=mid) inserts(loc,val,lson);
else inserts(loc,val,rson);
up(rt);
}
int main()
{
int t,A;
scanf("%d",&t);
while (t--){
memset(d,0,sizeof d);
scanf("%d%d",&n,&k);
int ans=0;
for (int i=0;i<n;i++){
scanf("%d",&A);
int L= (A-k>=0 ? A-k:0);
int R=A+k;
int ans=query(L,R,1,1,N);
inserts(A,ans+1,1,1,N);
}
if (d[1]>1) printf("%d\n",d[1]);
else puts("0");
}
return 0;
}

这个题目初看有点像 LCS,而且确实可以用LCS那种
 n^2方法做出来,但是此题数据量大到10万,明显不能那样做。。。哎,新手题,我居然还想复杂了,其实就是用线段树维护,边读入,边查询,边插入,就可以用
N*logN的复杂度解决了。

时间: 2024-10-25 20:15:20

2014-05-25 记录的相关文章

揭开IaaS云移动性的神话-【软件和信息服务】2014.05

生活中的很多事情极具欺骗性,包括最近刚刚看到专家的确认:自己的脐带血不能救自己.这样的事情同样发生在IT界,最近经常听到关于IaaS一些不切实际的想法,认为IaaS云上的负载可以简单地到处飘移,比如可以毫无障碍地跨越不同的服务商和私有云数据中心进行飘移.经常听到的几个典型说法包括: 我们使用了OpenStack,因此您的负载可以在任何地方自由翱翔: 我们使用了开源的Hypervisor, 因此您的负载可以在任何地方自由翱翔: 我们支持OVF(Open Virtual Format)标准格式的导入

&lt;2014 05 21&gt; 互联网时代的C语言——Go(2)

************************************************************************************************************** 代码清单 hello.gopackage main import "fmt"// 我们需要使用fmt包中的Println()函数 func main() { fmt.Println("Hello, world. 你好,世界!")}代码解读每个Go源

寻找大学目标及行动步骤——记ITAEM团队第二期宣讲会(2014.05.14)

·昨晚8:00-9:40,在 钟海楼03029 ,进行了ITAEM团队第二期宣讲会(第一期见第一期宣讲会总结),来参加的主要是大一学生,以信院为主,也有法学院.文学院的同学.在宣讲会中,大家都比较积极认真. 第二期宣讲会议程 (1)ITAEM团队骆宏作"有目标,才有奋斗的动力"主题分享,时间约为晚8点-8点40分: (2)丁又专作"Doing,Now(现在就行动)"演讲,时间约为晚8点45分-9点28分: (3)ITAEM团队温辉翔分享自己技术成长经验与推荐书籍,时

2014.7.25

暑假时间安排: 一.首先明确要暑假要完成那些事 为将来自己的事业做准备,学习软件工程相关的知识.包括对c,c++的复习和强化,主要是通过网上做题,发现问题及时解决的方法来学习:学精数据结构:网页学习,这个进度可以稍微慢点,能学好这些暑假就没白过了 学习专业之外的一些必要的东西,可以通过看小说和书评,电影和影评来学习 体验生活的美好,比如音乐,摄影,游戏,和好朋友玩,还有好多,慢慢想 思考这20年的得失 二.时间安排上要注意的东西 不可能一天到晚学习,应该是分出几块固定时间学习,其它时间相对自由

Cheatsheet: 2014 05.01 ~ 05.31

Web Choosing a Web Framework/Language Combo for the Next Decade Optimizing NGINX and PHP-fpm for high traffic sites The Absolute Beginner's Guide to Node.js Node.js Performance Tip of the Week: CPU Profiling Improved JavaScript Intellisense in Visual

ACM——记2014/5/25陕西邀请赛

随着红色大写的STOPED在屏幕上显示,宣告陕西邀请赛打铁而归!心里无数的不干,着实难过-- 这次比赛bug太多,低级错误不断,花了许多时间.第一题最简单题,写了程序,运行异常退出.总是以为自己程序问题,改了N种版本,最后队友关掉重建一个项目,才a掉第一题.竟然在编译器上出问题,Codeblocks用了那么久,还是栽了跟头.接着看排名,j题过的较多,就开始做j 题,队友一个n 重定义,竟然查了许久没查到问题,当时以为见鬼啊,真是水平太差!最后改掉运行正确,提交超时!队友打印在边上看代码.然后看c

我的福州之行——2014.05.28

在回程的动车上面,感觉这次行程还是让我挺疲惫的. 这次福州比赛只有我们一支外省队伍参赛.我还是挺好奇学院为什么让我们公费过来的,毕竟不同于acm比赛有着悠久的历史和集中式的训练.这应该是我们学校初次以学校名义接触这类比赛. 于我,安全只是一个小兴趣,并没有花太多时间在上面.另外一个师兄也是被另一个队友W召唤过来的,他们俩是真的有在做网络安全的.起初我就类似于陪人过来玩玩的心情. 对于带队老师,我就不吐槽了,人挺好,但是思维跟我不在一个层面上,总的来说,喜欢凑热闹,喜欢形式.按照妹子说:那是参与度

&lt;2014 05 10&gt; Android平台开发攻略

1.标准SDK开发: IDE: Eclipse Netbeans Language: Java 2.标准NDK+SDK开发: IDE: Eclipse Language: Java(JNI) C/C++ 3.Tranditional linux开发 IDE: c4droid,   command line.vim,emacs Language: C/C++ ------------------------------------------------------------ In a mini

德国W家HIPP 奶粉有货播报:2014.6.25 HIPP 1+ 4盒装有货啦!

德国W家HIPP 奶粉有货播报:2014.6.25 HIPP 1+ 4盒装有货啦!

[2014.05.18]文本编码转换专家v2.0

软件名称:文本编码转换专家最新版本:v2.0操作系统:XP/2003/Win7/Win2008软件介绍:文本编码转换专家,界面简洁易用,功能强大实用.自动识别文件编码,有效转换成目标编码.真正的多线程管理,效率更高,可控性更好. 下载地址:http://url.cn/RCbqB2 淘宝购买地址:http://item.taobao.com/item.htm?spm=a1z10.1.w4004-6234656621.4.pyRjHw&id=39050877481 [2014.05.18]文本编码转