NOIP模擬測試20 周 任 飛

2022-04-14 03:49:58 字數 2084 閱讀 9963

liu_runda出的題再次$\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%$

題目中為什麼反覆強調簡單路徑,沒有環

沒有環的圖中點數-邊數=聯通塊數

字首和維護邊的字首和,和點的字首和,

在維護邊的字首和不好維護轉化為橫著邊字首和,豎著邊字首和

注意邊的邊界問題

看邊如何維護

就拿我的舉例

你在當前為邊且當前左面為邊時置為1

那麼當你統計答案時

ll bia=bianheng[x2][y2]-bianheng[x1-1][y2]-bianheng[x2][y1]+bianheng[x1-1][y1];

思考我們統計答案時要把x2相連的邊切斷

類似的,我們維護豎著的邊時也要類似操作

#includeusing

namespace

std;

#define ll int

#define a 2101

char

s[a][a];

ll vis[a][a],stax[

4200000],stay[4200000

],dian[a][a],bianheng[a][a],bianshu[a][a];

ll cnt=0

,n,m,q;

const ll nowx[5]=;

const ll nowy[5]=;

void

dfs(ll x,ll y,ll x1,ll y1,ll x2,ll y2)

}void

bfs(ll x1,ll y1,ll x2,ll y2)

}for(ll i=x1;i<=x2;i++)

for(ll j=y1;j<=y2;j++)

printf(

"%d\n

",cnt);

}int

main()

//memset()

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

for(ll j=1;j<=m;j++)

if(s[i][j]=='

1'&&s[i-1][j]=='1'

)

if(s[i][j]=='1'

) }

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

for(ll j=1;j<=m;j++)

//for(ll i=1;i<=n;i++,puts(""))

//for(ll j=1;j<=m;j++)

for(ll i=1,x1,x2,y1,y2;i<=q;i++)

}

其實就是求逆序對,然而逆序對是$n*log$的並不能過,思考優化

我們發現其實它給了多段等差數列,

先看所有等差數列都是完整的情況

我們在同一段等差數列上可以由$x[i-1]$推到$x[i]$思考我們找的是比當前大的個數,$x[i]=x[i-1]+a$所有之前等差數列貢獻都要減一

那麼設之前貢獻$tmp$得到當前貢獻$tmp-cnt(等差數列個數)$

那麼我們思考$假設當前值為$x$那麼逆序對數就是$i-sum(x)-1$

然後我們考慮第一段不是完整的

假設當前$x$轉移到$x2$中$x,x2$都比$begin$小那麼等差數列上所有小於$begin$貢獻都要減一(頭一段上沒有處於$x$--$x2$數不能轉移)

若當前已經比$begin$大了把它當成乙個正常等差數列

#includeusing

namespace

std;

#define ll long long

#define a 111111ll c[a];

ll tus,n,a,mod,now,cnt=0,ans=0

,last,tmp;

void

add(ll x,ll u)

ll sum(ll x)

intmain()

for(ll i=2;i<=n;i++)

else

ans+=tmp;

}printf(

"%lld\n

",ans);

}

周潤達 NOIP 模擬題 周任飛 題解

暴力深搜。不解釋。include include include define f x,y,z for int x y x z x using namespace std typedef long long ll const ll mod 1000000007 const ll size 100 l...

NOIP模擬測試20

liu runda聚聚的饋贈 problem a 周 防自閉題?這道題讓我整個考試都很愉悅 搜就完事了 1 include 2 3intn 4 int a 20 b 20 c 20 d 20 5 long long ans 67 void dfs int day,long long oi,long ...

NOIP模擬20 題解

來自達哥的問候 究級難題,完全不可做qaq include include include using namespace std typedef long long ll int n ll a 25 b 25 c 25 d 25 ans void dfs int step,ll mdx,ll lh...