CCPC2018 吉林站 補題 題解

2021-10-19 07:51:56 字數 3529 閱讀 3788

咕咕咕 慢速補題中qwq

求這個東西:

∑ i=

1n⌊n

i⌋

\sum_^\lfloor}\rfloor

i=1∑n​

⌊in​

⌋整除分塊即可

#include

using

namespace std;

int t,n,cnt;

intmain()

if(ans%2==

0)printf

("case %d: even\n"

,cnt)

;else

printf

("case %d: odd\n"

,cnt);}

return0;

}

按照題意模擬即可。

little skill: printf("%mkd",n) 可以輸出k位字元長度的數字,不足k位前面用數字m補齊。

#include

using

namespace std;

int t,cnt;

mapint>tim;

intmain()

return0;

}

我們可以從2的1次方做起。每次多乙個次方,需要的數量就*2。

#include

#define maxn 100010

using

namespace std;

int t,cnt,n;

struct nodet[maxn]

;inline

bool

cmp1

(struct node x,

struct node y)

inline

bool

cmp2

(struct node x,

struct node y)

intmain()

sort

(&t[1]

,&t[n+1]

,cmp1)

;for

(int i=

1;i<=n;i++

) t[i]

.done=0;

int need=

1,i=1;

bool flag1=

false

,flag2=

false

;for

(int j=

1;j<=

1000000000

&&i<=n;j++)if

(need==0)

if(1ll*need*

2>n-i+1)

break

; need*=2

;}if(flag1==

true)if

(need==0)

if(1ll*need*

2>n-i+1)

break

; need*=2

;// printf("j=%d need=%d i=%d\n",j,need,i);}if

(flag2==

true

)else

}else

}return0;

}

#include

#define maxn 210

using

namespace std;

int t,p,q,cnt;

int done[maxn]

;double dp[maxn]

;inline

double

solve

(int x)

intmain()

return0;

}

相似+解方程寫法

#include

#define eps 1e-10

using

namespace std;

int t,cnt;

double x,y,z,v1,v2,v3;

double t,r,h;

intmain()

return0;

}

二分寫法(來自隊友zyf)

#include

#define ll long long

using

namespace std;

const ll inf=

1e5+

720;

const

double eps=

1e-6

,eps_large=

1e-6

,eps_mini=

1e-6

;int t;

double r0,h0,x0,y0,z0,vx,vy,vz;

bool

in_tower

(double x,

double y,

double z)

double

dist

(double x,

double y,

double z)

intcheck

(double t)

intmain()

printf

("case %d: %.10lf\n"

,tt,l);}

return0;

}

#include

#define maxn 100010

using

namespace std;

int t,cnt,n,m;

int a[maxn]

,cur[maxn]

;struct nodeb[maxn]

;inline

bool

cmp1

(int x,

int y)

inline

bool

cmp2

(int x,

int y)

intmain()

else

ans-=(

*cur)

; aa.

erase

(cur);}

}if(flag==

false)}

sort

(&cur[1]

,&cur[tot+1]

,cmp1)

;sort

(&a[1]

,&a[n+1]

,cmp2)

;int pos=1;

for(

int i=

1;i<=n&&pos<=tot;i++

)else

break;}

}printf

("case %d: %lld\n"

,cnt,ans);}

return0;

}

2018ccpc吉林 C JUSTICE 思維

題意 n個物品,每個物品重量1 2 k i 問可不可以分成兩份,讓這兩份的總量都大於1 2 題解 因為兩份都要大於1 2,那麼我們兩份都找出1 2,剩下的就無所謂了。我們把問題轉化為,兩份都需要找到乙個1,因為 1 2 1 4 1 4,所以乙個1等價於兩個2,4個3.我們先從小到大排個序,令cnt1...

2018CCPC吉林C JUSTICE(思維模擬)

題意 給你n個數,能否分成兩組,使每組的2的ki次方分之一的和大於等於二分之一,能的話輸出分組方案 思路 不難發現,例,也就是2個k能合成乙個k 2,能不能分成兩組,只需要看最後合完之後1的個數是不是大於等於2。利用二進位制的原理,優先佇列 並查集,先取出權值最小的,進行合併,如果兩個值相同,則可以...

2018CCPC吉林賽區 重現賽 部分

題意 判斷所給表示式的奇偶性 思路 打表發現1 3為奇數,4 8為偶數,9 15為奇數,16 24為偶數,25 35為奇數 include using namespace std typedef long long ll const int inf 0x3f3f3f3f const int max ...