SDOI 2018 R2 自我總結

2021-08-20 03:11:58 字數 3480 閱讀 4830

day1 

由於蒟蒻一輪省選**ce,二輪上了考場之後並不是很慌,先看了看第一道題,感覺很可做,然後幾乎整場比賽就栽在第一道題上了.... 第一眼的思路就是現將整個座標系按照給定直線導軌的角度翻轉,然後將擋板(線段)對映到導軌上,然後處理一下導軌之間的遮擋情況,注意到最後選取的區間左右端點一定有乙個會卡在擋板的端點上,所以可以o(n)統計答案。

感覺很難碼,然後就趕緊開始碼。。。

誒 , 座標翻轉公式是啥嘞? 我去推一推。。。 乙個小時過去了。。。

誒 , 怎麼我只會n方預處理遮擋情況呢? 哇, 只有40分了。。

心態**。。。

大概碼了三個小時調過大樣例,然後自信看第二題了。

woc!怎麼t2我連暴力都不會!! 考完知道這是wc講的圓方樹,後悔沒去。還是因為我姿勢水平太低了唉....

t3唐題沒什麼思路。。。。

考完期望得分40 實際0 唉我**炒雞弱啊 真的是很氣 後來發包之後發現我沒有處理兩個線段端點相同情況,加了個=號就40了

然後賽後在zyb dalao 指導下知道了可以用掃瞄線這種東西,然後賽後寫出來100了。。

總結:不要太相信大樣例,太坑了!!!!!!!

day2

day1成功爆零心態有點**,不過至少知道了不能信大樣例,唉。

第一題?30分樹上莫隊?可惜我不會啊啊啊啊!

試了試資料生成器?資料隨機?

發現資料生成的樹由一條長鏈構成其餘隨機,那麼可以在長鏈上主席樹,其餘暴力。。。

由於day1 教訓我查了好久t1。。

然後整場比賽都在想t1啊。。。

期望得分30 實際。。30 至少沒有把暴力打掛很感動了。。

總結:其實這場比賽最簡單的題是t3 以後比賽前要通讀題目啊

附t1**

#include#include#include#include#include#include#define double  long double

using namespace std;

const double eps = 1e-13;

const double pi= acos(-1);

double curx;

struct nodelin[1000010] , model;

struct straightlne;

struct node2nw1[1000010],nw2[1000010];

int t,n;

double l;

struct point

pt1[100100],pt2[100010];

struct line1

}le1[1000010],le2[1000010];

void get(node x)

bool cmp(node2 p,node2 q)

while((ed2[ul].xxeps)

if(ret>ans) ans=ret;

} else

tmp=min(rt,ed2[ul].xx)-max(left,ed2[ul].x);

if(tmp>eps)

if(ret>ans) ans=ret;

} }ul=ur=ll=rr=0;

for(register int i=1;i<=cnt1;++i)

while((ed2[ul].xxeps)

if(ret>ans) ans=ret;

} else

tmp=min(rt,ed2[ul].xx)-max(left,ed2[ul].x);

if(tmp>eps)

if(ret>ans) ans=ret;

} }ul=ur=ll=rr=0;

for(register int i=1;i<=cnt2;++i)

while((ed1[ul].xxeps)

if(ret>ans) ans=ret;

} else

tmp=min(rt,ed1[ul].xx)-max(left,ed1[ul].x);

if(tmp>eps)

if(ret>ans) ans=ret;

} }ul=ur=ll=rr=0;

for(register int i=1;i<=cnt2;++i)

while((ed1[ul].xxeps)

if(ret>ans) ans=ret;

} else

tmp=min(rt,ed1[ul].xx)-max(left,ed1[ul].x);

if(tmp>eps)

if(ret>ans) ans=ret;

} // cout<>t;

while(t--)

int x,y,xx,yy,ll;

x=read();y=read();xx=read();yy=read();ll=read();

model.x=x,model.y=y,model.xx=xx,model.yy=yy;l=ll;

get(model);

double degree;

if(fabs(lne.a)>eps)

degree=atan(lne.a);

if(lne.a==0)

if(lne.b==0)

int cnt1=0,cnt2=0;

for(register int i=1;i<=n;++i)

if(op==1)

}int tot1=0,tot2=0;

for(register int i=1;i<=cnt1;++i)

for(register int i=1;i<=cnt2;++i)

sort(pt1+1,pt1+tot1+1,cmpp);

sort(pt2+1,pt2+tot2+1,cmpp);

curx=pt1[1].x;

cnt1=0;

st.insert(le1[pt1[1].belong]);

for(register int i=2;i<=tot1;++i)

curx=pt1[i].x;st.insert(le1[tmp]);

}if(pt1[i].id==-1)

curx=pt1[i].x;

st.erase(le1[tmp]);

}} curx=pt2[1].x;

cnt2=0;

st.insert(le2[pt2[1].belong]);

for(register int i=2;i<=tot2;++i)

;curx=pt2[i].x;st.insert(le2[tmp]);};

if(pt2[i].id==-1)

curx=pt2[i].x;

st.erase(le2[tmp]);

}} sort(ed1+1,ed1+cnt1+1,cmppp);

sort(ed2+1,ed2+cnt2+1,cmppp);

work(cnt1,cnt2);

printf("%.15lf\n",ans);

} return 0;

}

2023年自我總結

由於18年逐漸走上了管理層面 雖然只是個小經理 感覺和平時寫寫 有一些本質上的區別 ps 在此我要感謝我的領導 技術大咖,研發團隊的支柱人物 給我時間成長,做最終的把控。1 以前是別人安排事情,不需要考慮太多,只需要把自己的這塊需求理解清楚然後開發即可 接觸的 和資料庫方面比較多,可以經常充實自己的...

xss總結 2018自我整理

0x00前言 因為ctf中xss的題目偏少 因為需要機械人在後台點選手的連線2333 所有寫的比較少 這裡推薦個環境 0x01xss作用 常見的輸出函式 print print r echo printf sprintf die var dump var export xss是往頁面中新增了一段 並...

2018寒假訓練新生輪R2

a magic wall 題意 給乙個n m的矩陣,1不用管,其他數都是0到9,告訴你每個數從i變成j花費多少,問把非1的數全換成1最小花費多少。在花費矩陣上暴力跑floyd,然後加起來。include include include include using namespace std cons...