題解 牛客寒假訓練賽1

2021-09-10 14:50:30 字數 2901 閱讀 4831

牛客寒假訓練賽1,自己水平還是太差了。

a:

題意:有計算符號和結果,求最初的數

思路:簡單模擬

#include#define ll long long

struct note

a[101];

int main()

}printf("%lld",k);

return 0;

}

b:給定2,0,4的數量,對其進行排列,計算1~i的(a[i]-a[i-1])^2的和

構造,4,0,4,0是最優解,所以需要先排列,然後再考慮其他情況

#includeint a[5];

int main()

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

else

if(a[2])

break;

}case 2:

else

if(a[0])

break;

}case 4:

else if(a[2])

break;

}}

}printf("%d",ans);

return 0;

}

c:

題意:n個節點,第i個節點有pi,當pi>pj時,飛船可以從i到j,飛往後,耐久變為t異或pj,t的初始值為1,求到達n的耐久最大為多少

思路:dp,實際上有點floyd的感覺,又有點搜尋的感覺(確實可以拿搜尋過

#include#include#include#include#define maxn 10003

#define maxp 4096

//3000用二進位制表示最大也就是1<<12

//less,greater包含在iostream裡面??撓頭.jpg

using namespace std;

int n;

int p[maxn];

int dp[maxp];

int main()

if(begin<=end)//只有在這種情況下才無法到達

sort(p+1,p+1+n,greater());

while(p[x]>begin&&x1)

y--;

dp[end^begin]=1;

for(int i=x+1;i=0;j--)

dp[j]|=dp[j^p[i]];//需要保證之前的情況也能夠到達

} for(int i=maxp-1;i>=0;i--)

if(dp[i]) //找到最大值

return 0;

}

d:

題意:初始**數分別為a,b,兩人從兩端相向而行,當位置和n互質的時候,a*k^x,b*k^y,求最後兩者之和,並向1e9+7取模

思路:數論,求出與n互質的數的和,然後快速冪(或者其他操作

#include#define mod 1000000007

#define ll long long

//relocation truncated to fit 記憶體使用超限

//尤拉函式

//此處應該使用求單個數尤拉函式的函式

//因為根本不需要求全部

int phi(int x)

}if(x > 1) ans = ans / x * (x-1);

//若x有大於根號下x的因數,則需繼續刪去

//易得,x只有可能又乙個這樣的因數

//所以判斷一次即可

return ans;

}//快速冪

//有時間可以學下位運算的寫法

ll qik(ll a,ll x)

return res;

} int main()

e:

題意:n*m的矩陣,p個轟炸機,兩種轟炸模式,一種是對角線分別為x,y的菱形,一種只轟炸上半部分,求最後轟炸次數的異或和

思路:查分,但是暫時還是看不懂幾個陣列之間是怎麼實現的(我理解能力真差.jpg)

f:

題意:長度為n的序列,數字在1~v之間,給任意位置的數賦值形成子串行,子串行需滿足嚴格遞增,萌值定義為除序列最大值以外所有值的乘積,若只有乙個數則為1,求所有序列萌值的和

思路:dp,自己嘗試著去寫狀態轉移方程,並且利用sum作為字首和,記錄前面的代價

#include#define maxn 5005

#define ll long long

#define mod 1000000007

#define maxn 5005

int dp[maxn][maxn];

int main()

}ll ans=0;

for(int i=1;i<=v;i++)

ans=(ans+dp[n][i])%mod;

printf("%lld",ans);

return 0;

} ​

g:

題意:排序後所有數左右相差值為1,則說明這個序列為「萌」的,現在給出序列n,求最小長度[l,r]的萌序列,並且要求含有x,y

h:

牛客訓練賽1

honoka和格點三角形 只有兩種三角形,底邊為2,高為1和底邊為1,高為2 1,直角三角形 4 n 1 m 2 4 n 2 m 1 2,底邊在x軸,為2 2 m 2 m 2 n 1 2,底邊在y軸,為2 2 n 2 n 2 m 1 3,底邊在x軸,為1 2 m 1 m 2 n 2 4,底邊在y軸,...

2016 1 26寒假訓練賽1

2016.1.26寒假訓練賽1 a a mathematical curiosity 按照題意,暴力列舉過去,統計結果即可 b tempter of the bone 搜尋入門題目,按最簡單的方式寫即可 c r n 1.特殊處理a和b中有乙個為0的情況,如果成立的話,結果增加4 2.其他的情況,先考...

牛客寒假第一場訓練賽

比賽鏈結 題解b題 構造題先找構造括號效率比較高的方法 這種括號裡面套括號效率比較高而且合法 所以思路就是對所給整數開方,剩餘的零頭我們用列舉的方法。但是對於一些資料直接用開方得到的數x構造的話,會導致零頭太小,不好構造零頭 第一步構造的是乙個對稱的括號,有x個左括號,如果零頭小於x的話,就不好構造...