Codeforces Round #345 (Div. 2)
2016-03-08 11:55
281 查看
居然有场中国下午场次的CF,猴开心啊,于是就报名了...
结果被虐傻了...果然不能太激动啊...
A题题目翻译挂了,少了一个无解的情况,导致机房前20Min没有一个人能过A题...直到后面有高人相助才过,好惨
C题前面都开了long long,只有输出没开I64d,结果就丢了1206分...这什么鬼啊...
D题敲了20min的程序结果挂了,于是删掉重打,打到要结束了才发现题目两个东西弄反了,然后仓促改了一改...呼,然后少改一个地方,然后一堆细节的东西也有问题...表示无奈
A题:两个电池,每秒钟充电的话电量+1,不充电-2,一个<=0,就结束。问最多撑多久?
感觉贪心就好,就是每次给电量小的+1,结果WA了!好吧,我觉得是我贪心可能有问题,于是我就打了一个大暴力,f[i][j]表示两个电池的状态,WA了!然后我放弃了,我吃饭去了...回来就有人说还有一句话你没看见。
如果一个电池的电量=1,你必须给它充电。结果1 1输出是0...好坑啊...
O(100^3)大暴力:
View Code
结果被虐傻了...果然不能太激动啊...
A题题目翻译挂了,少了一个无解的情况,导致机房前20Min没有一个人能过A题...直到后面有高人相助才过,好惨
C题前面都开了long long,只有输出没开I64d,结果就丢了1206分...这什么鬼啊...
D题敲了20min的程序结果挂了,于是删掉重打,打到要结束了才发现题目两个东西弄反了,然后仓促改了一改...呼,然后少改一个地方,然后一堆细节的东西也有问题...表示无奈
A题:两个电池,每秒钟充电的话电量+1,不充电-2,一个<=0,就结束。问最多撑多久?
感觉贪心就好,就是每次给电量小的+1,结果WA了!好吧,我觉得是我贪心可能有问题,于是我就打了一个大暴力,f[i][j]表示两个电池的状态,WA了!然后我放弃了,我吃饭去了...回来就有人说还有一句话你没看见。
如果一个电池的电量=1,你必须给它充电。结果1 1输出是0...好坑啊...
O(100^3)大暴力:
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int maxn=1000010; inline int in(){ int x=0;char ch=getchar(); while(ch>'9' || ch<'0') ch=getchar(); while(ch>='0' && ch<='9') x=x*10+ch-'0',ch=getchar(); return x; } struct Node{ int x,y,v; Node(){} Node(int a,int b,int c){x=a,y=b,v=c;} }s[maxn]; int n,m,tot; int a[maxn],b[maxn]; int row_mx[maxn],cur_mx[maxn]; int p[maxn]; bool cmp(const Node &A,const Node &B){ return A.v<B.v; } inline int Find(int x){ int r=x,pre; while(r!=p[r]) r=p[r]; while(x!=r){ pre=p[x],p[x]=r,x=pre; } return r; } int main(){ #ifndef ONLINE_JUDGE freopen("E.in","r",stdin); #endif n=in();m=in(); for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) a[++tot]=in(),s[tot]=Node(i,j,a[tot]); sort(s+1,s+tot+1,cmp); for(int i=1;i<=tot;i++) p[i]=i; for(int i=1;i<=tot;i++){ int x=s[i].x,y=s[i].y,v=s[i].v; int id=(x-1)*m+y,t1=0,t2=0; int fx=Find(row_mx[x]),fy=Find(cur_mx[y]); if(v>a[fx]) t1++; if(v>a[fy]) t2++; b[id]=max(b[fx]+t1,b[fy]+t2); if(v==a[fx]){ int f=Find(id); if(b[f]>b[fx]) p[fx]=f; else p[f]=fx; } if(v==a[fy]){ int f=Find(id); if(b[f]>b[fy]) p[fy]=f; else p[f]=fy; } row_mx[x]=cur_mx[y]=Find(id); } int ip=0; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++) printf("%d ",b[Find(++ip)]); putchar('\n'); } return 0; }
View Code
相关文章推荐
- spring JDK动态代理与CGLib动态代理
- extjs labelalign有什么作用
- weak属性需要在dealloc中置nil么?
- javascript的内置对象参考
- ios开发 各种字体
- iTween基础之Audio(音量和音调的变化)
- React-约束组件及无约束组件详解
- 131.View the Exhibit and examine the structure of the PRODUCT, COMPONENT, and PDT_COMP tables.
- Unity3D -- 快速排序
- android判断设备是手机还是平板method
- Java ConcurrentModificationException异常原因和解决方法
- codevs 3094 寻找sb4
- arcpy导入错误 问题 “ImportError: No module named arcpy”
- 子线程更新UI,牵扯activity的启动过程
- U3d基础知识1
- TortoiseGit中SSH密钥的配置方法
- App架构经验总结
- Java基础学习总结(31)——Java思维导图
- Java基础学习总结(31)——Java思维导图
- java思维导图