醉了,我记得题是保留两位小数,但是一看错了、、、、我的代码
#include<fstream> #include<iomanip> using namespace std; int main() { ifstream fin("aplusb.in"); ofstream fout("aplusb.out"); double a,b,c; fin>>a>>b; c=a+b; fout<<setiosflags(ios::fixed)<<setprecision(0); fout<<c<<endl; return 0; }
题目 1 加法问题
2017-09-16 20:09:01
|
|
#include<bits/stdc++.h>
#define il inline #define RG register #define ll long long #define db double #define N 86444 #define rs ((o<<1)|1) #define ls (o<<1) #define mid ((l+r)>>1) using namespace std; int Min[N*4],lazy[N*4],n;int tag[N]; void down(int o){ if(lazy[o]){ lazy[rs]=Min[rs]=lazy[o]; lazy[ls]=Min[ls]=lazy[o]; lazy[o]=0; } } void Insert(int o,int l,int r,int L,int R,int num){ if(l!=r)down(o); if(l>=L&&r<=R){if(Min[o]>num) lazy[o]=Min[o]=num; return; } if(mid<L)Insert(rs,mid+1,r,L,R,num); else if(mid>=R)Insert(ls,l,mid,L,R,num); else Insert(rs,mid+1,r,mid+1,R,num),Insert(ls,l,mid,L,mid,num); Min[o]=min(Min[rs],Min[ls]); } int Query(int o,int l,int r,int pos){ if(l==r)return Min[o]; if(mid<pos)return Query(rs,mid+1,r,pos); else return Query(ls,l,mid,pos); } int L,R; struct s{ int l,r,val; void read(){ scanf("%d%d%d",&l,&r,&val); l++,r++; l=max(l,L); r=min(R,r); tag[l]++,tag[r+1]--; } }seg[N]; bool comp(const s & a,const s & b){return a.l<b.l;} int f[N]; int main(){ freopen("1.in","r",stdin); freopen("1.out","w",stdout); memset(Min,127/3,sizeof(Min)); scanf("%d",&n);scanf("%d%d",&L,&R);L++,R++; for(int i=1;i<=n;++i)seg[i].read(); int tot(0);for(int i=L;i<=R;++i){ tot+=tag[i]; if(!tot)cout<<"-1",exit(0); } sort(seg+1,seg+n+1,comp); int n1=1; for(int i=L-1;i<=R;++i){ if(i!=L-1)f[i]=Query(1,1,N-1,i); while(i==seg[n1].l-1) Insert(1,1,N-1,seg[n1].l,seg[n1].r,f[min(i,0)]+seg[n1].val),n1++; }cout<<f[R]; return 0; }
题目 1 加法问题
2017-09-10 12:06:27
|
|
...
|
|
回复 @MayLava :
#include<iostream> #include<cstdlib> #include<cstdio> #include<algorithm> #define N 100010 #define lowbit ( (i) & (-i) ) #define LL long long using namespace std; struct point{ int x,y; void read(){scanf("%d%d",&x,&y);} }p[N]; struct seg{ int h1,h2,h3,flag; seg() {} seg(int x,int y,int z,int a):h1(x),h2(y),h3(z),flag(a) {} }s[N]; int tree[N],n,tot,sz,sub[N]; void Insert(int pos,int num){for(int i=pos;i<N;i+=lowbit)tree[i]+=num;} int Query(int pos){int sum(0);for(int i=sum;i;i-=lowbit)sum+=tree[i];return sum;} int find(int x){ return lower_bound(sub+1,sub+sz+1,x)-sub; } void link(int ff,int l,int r,int h){//0横线,//1竖线 if(!ff){ s[++tot]=seg(find(l),find(r),h,0); }else { int X=find(h); s[++tot]=seg(X,X,l,1); s[++tot]=seg(X,X,r,-1); } } bool comp(const point & a,const point & b){return a.x==b.x?a.y<b.y:a.x<b.x;} bool Comp(const point & a,const point & b){return a.y==b.y?a.x<b.x:a.y<b.y;} bool COMP(const seg & a,const seg & b){ if(a.h3!=b.h3)return a.h3<b.h3; return a.flag<b.flag; } void build(){ sort(p+1,p+n+1,comp); for(int i=2;i<=n;++i) if(p[i].x==p[i-1].x) link(1,p[i-1].y,p[i].y,p[i].x); sort(p+1,p+n+1,Comp); for(int i=2;i<=n;++i) if(p[i].y==p[i-1].y) link(0,p[i-1].x,p[i].x,p[i].y); sort(s+1,s+tot+1,COMP); } int main(){ scanf("%d",&n); for(int i=1;i<=n;++i)p[i].read(),sub[++sub[0]]=p[i].x; sort(sub+1,sub+sub[0]+1); sz=unique(sub+1,sub+sub[0]+1)-sub-1; build();LL Ans(0); for(int i=1;i<=tot;++i){ if(!s[i].flag)Ans+=Query(s[i].h2)-Query(s[i].h1-1); else { Insert(s[i].h1,s[i].flag); } }cout<<Ans; return 0; }
题目 1 加法问题
2017-09-05 22:51:53
|
|
[size=40]钓鱼,愿者上钩[/size]
题目 1 加法问题
2017-08-23 11:01:06
|
|
乌鸦坐飞机
题目 1 加法问题
2017-08-23 10:32:14
|
|
....跪
题目 1 加法问题
2017-08-21 21:40:17
|
|
死活过不去,最后直接针对测试数据。。。。。
|
|
我居然A了一道a+b问题,哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
题目 1 加法问题
2017-08-16 17:25:07
|
|
果然网络流能过~愉快
|
|
盖楼盖楼
|
|
哈哈
我错了 忘了double这个东西
题目 1 加法问题
2017-07-08 21:45:07
|
|
在这道题上
Pascal完爆c/c++ |
|
哔了狗了
竟然是实数而不是整数 结果没注意 gg
题目 1 加法问题
2017-07-08 17:52:03
|
|
咳咳。。。
题目 1 加法问题
2017-05-26 17:38:36
|
|
滑稽
|
|
我再加几个标签
|
|
。。。。。。
题目 1 加法问题
2017-05-10 17:47:13
|
|
我也来盖楼
题目 1 加法问题
2017-05-06 15:47:08
|
|
|