2017 09 06校內訓練

2022-08-16 15:12:10 字數 2859 閱讀 6290

t1:切糕

題解:根據相似三角形的性質,我們可以推出:橫切:列舉每乙份,答案為(b-b*√(i/n))(1<=i<=n-1).豎切分兩類:一類是切成偶數塊,這樣中間要切一刀,左邊的答案為(a/2*√(i/(n/2)))右邊答案為a-左邊的答案;另一類切成奇數塊:中間不需要切,左右答案與前面一樣。

**:

1 #include2 #include3 #include4 #include5 #include6 #include7

using

namespace

std;

8int

n,a,b,c;

9double s,eps=1e-15;10

double

ans;

11double ll[1010

];12

double sqr(double

t)19

return

r;20}21

intmain()

37 qwq=cnt;

38 ll[++cnt]=(double)a/2.0;39

for(i=qwq;i>=1;--i) ll[++cnt]=a-ll[i];

40for(i=1;i<=cnt;++i)

43return0;

44}45if(n%2!=0

)53 qwq=cnt;

54for(i=qwq;i>=1;--i) ll[++cnt]=a-ll[i];

55for(i=1;i<=cnt;++i)

58return0;

59}60}

61if(c==0)69

for(i=n-1;i>=1;--i) printf("

%lf\n

",ll[i]);

70return0;

71}72return0;

73 }

cut.cpp

t2:採購

題解:考慮二分答案,check部分對每個物品實際需要用的**sort,從小到大取。需要開long long。

**:

1 #include2 #include3 #include4 #include5 #include6 #include7 #include8 #include9

#define ll long long

10using

namespace

std;

11int

n,m,l,r,mid,ans;

12 ll a[100010],b[100010],sum[100010

];13

bool check(int

mid)

19 sort(sum+1,sum+n+1

);20

for(i=1;i<=mid;++i)

24return

true;25

}26intmain()

34 l=0;r=n;

35while(l+1

40if(check(r)==true) ans=r;

41else ans=l;

42 printf("

%d\n

",ans);

43 }

buy.cpp

t3:能量

題解:我們可以通過求異或和,得出每乙個數。因此我們記前k個數的異或和。以每一段的異或和為邊權,該段起點和終點分別為定點,跑最小生成樹即可(如果用kruskal只可以取得70分,prim不使用堆的那一種是100分)。

**:

1 #include2 #include3 #include4 #include5 #include6 #include7

#define ll long long

8using

namespace

std;

9 ll d[10010],u[10010

];10 ll a[10010

];11

int to[10010

];12 ll ans=0;13

intn,mn;

14int

main()

22for(i=1;i<=n;++i)

27 ans+=d[mn];u[mn]=1;28

for(j=1;j<=n;++j)31}

32 printf("

%lld

",ans);

33return0;

34 }

power.cpp

20170906校內模擬賽

所有題目開啟 o2,評測機效率為4億左右 小r意外獲得了一塊切糕,他準備把切糕分給n個小夥伴。切糕的形狀是乙個底邊長為a,高為b的等腰三角形。小r打算橫著或豎著切n 1刀把切糕切成面積相等的n塊分給小夥伴,請你告訴他要在哪些地方切。輸入檔案 cut.in 輸入包含四個整數 n,a,b,c,表示要切成...

20161104校內訓練

一道類似模擬的題,就根據所寫的東西來做就可以了。include define rep i l r for int i l i r i define per i r l for int i r i l i define erep i u for int i head u i i e i nxt usi...

2017 4 14校內訓練

hzwer拿了幾道noi中比較簡單的給我們做 a.noi2009 植物大戰殭屍 思路 考慮最小割,如果乙個植物的權值x是正的,我們先預設吃掉它,使答案加上x並讓s向這個點連x,割這條邊相當於不吃這個植物,否則讓這個點向t連 x,割這條邊相當於吃這個植物,每個植物讓它能攻擊到的格仔和它的前一格向它連i...