NOIP2015PJ 洛谷 P2671 求和

2022-05-05 08:12:07 字數 1088 閱讀 7368

直接暴力肯定是不行的,我們需要把各種相同的顏色分離出來計算。

但是只分離出來沒有用,因為三元組要求中間有乙個y。可以看出,x和z的奇偶性相同時,存在y使三元組成立。

所以我們用兩個陣列儲存相同顏色的奇、偶情況,每次計算就變成計算這個序列的值。

則原式=(num[1]+num[2])*(a[num[1]]+a[num[2])+(num[1]+num[3])*(a[num[1]]+a[num[3])+(num[1]+num[4])*(a[num[1]]+a[num[4])+

...+(num[2]+num[3])*(a[num[2]]+a[num[3])+(num[2]+num[4])*(a[num[2]]+a[num[4])+

...+(num[n-1]+num[n])*(a[num[n-1]]+a[num[n])

其中,num[1]*a[num[1]]這個值被計算了n-1次,num[1]乘其他a[num[2]],a[num[3]],a[num[4]]……都為一次。

num[2]*a[num[2]]這個值被計算了n-2次,num[1]乘其他a[num[1]],a[num[3]],a[num[4]]……都為一次。

以此類推。

#include#include

#include

using

namespace

std;

long

long n,m,a[100001],ans=0;//

資料比較大,用longlong

vectorlong> even[100001],odd[100001

];//

使用變長陣列儲存

int ad(int

pt)

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

s=0;

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

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

return

count;

}int

main()

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

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

cout

<}

洛谷P2679 NOIP2015 子串

無 有兩個僅包含小寫英文本母的字串 a 和 b。現在要從字串 a 中取出 k 個互不重疊的非空子串,然後把這 k 個子串按照其在字串 a 中出現的順序依次連線起來得到一 個新的字串,請問有多少種方案可以使得這個新串與字串 b 相等?注意 子串取出 的位置不同也認為是不同的方案。輸入格式 輸入檔名為 ...

NOIp2015, 洛谷P2678 跳石頭

一年一度的 跳石頭 比賽又要開始了 這項比賽將在一條筆直的河道中進行,河道中分布著一些巨大岩石。組委會已經選擇好了兩塊岩石作為比賽起點和終點。在起點和終點之間,有 nn 塊岩石 不含起點和終點的岩石 在比賽過程中,選手們將從起點出發,每一步跳向相鄰的岩石,直至到達終點。為了提高比賽難度,組委會計畫移...

NOIP2015 鬥地主 洛谷P2668

題目描述 牛牛最近迷上了一種叫鬥地主的撲克遊戲。鬥地主是一種使用黑桃 紅心 梅花 方片的a到k加上大小王的共54張牌來進行的撲克牌遊戲。在鬥地主中,牌的大小關係根據牌的數碼表示如下 3 4 5 6 7 8 9 10 include include include using namespace st...