hdu 4950 monster
小模擬題。找到推斷的臨界條件。
#include#include#includeusing namespace std;
__int64 h,a,b,k,sum;
int main()
{ int i=0;
while(scanf("%i64d%i64d%i64d%i64d",&h,&a,&b,&k)&&(a+b+h+k))
{i++;
bool flag=0;
sum=h;
if(a>=h) flag=1;
if(sum-k*a+(k-1)*b<1) flag=1;
if(a*k-b*(k+1)>0) flag=1;
if(flag==1)cout<
這個題的資料量是比較大的,要是直接暴搞的話肯定是會t的。可是打表之後就發現了規律;
#include#includeusing namespace std;
__int64 x,k;
int main()
{ int i=0;
while(scanf("%i64d%i64d",&x,&k)&&(x+k))
{__int64 y;
int t=0;
for(int i=2;i<=k;i++)
{if(x%i)
{if(t>100) break;
y=x/i;
y++;
x=y*i;
y=x/i;
t++;
cout<
發現到x/(i+1)小於i+1之後。x/(i+1)的值是不會變化的;
事實上官方是有公式證明的;
以下是**。
#include#includeusing namespace std;
__int64 x,k;
int main()
{ int j=0;
while(scanf("%i64d%i64d",&x,&k)&&(x+k))
{__int64 y;
j++;
bool flag=0;
for(int i=2; i<=k; i++)
{if(x%i)
{y=x/i;
y++;
x=y*i;
y=x/i;
if(y
多校第八場
hdu 4950 monster 小模擬題,找到判斷的臨界條件 include include includeusing namespace std int64 h,a,b,k,sum int main int i 0 while scanf i64d i64d i64d i64d h,a,b,k ...
hdu 多校賽 第八場
首先確定答案不會太大,寫個狀壓跑一跑,能跑出所有答案 或者直接oeis include define ll long long define sc scanf define pr printf using namespace std ll a1 84 ll a2 14 ll a3 36 ll a4 ...
杭電多校第八場
1003 題目鏈結 clockwise or counterclockwise 水題,經歷過牛客應該知道叉積可以判斷順逆時針。叉積參考 叉積 參考 include include include include include include include include include incl...