解題報告 NOIP2017

2022-09-14 18:12:09 字數 2612 閱讀 5729

思路

這個是當年選手最後悔的也是大部分人能猜出來但是無法嚴格證明的題目

我來證明一下

好吧,我不會

但我們直接打表找規律,發現答案就是 \(ab-a-b\)

#include using namespace std;

long long a,b;

int main()

int main()

for(int i=0;i0)

cin>>a>>b;

if(a[0]!='n'&&b[0]=='n'&&k==0)

else if(((a.length()==b.length()&&a>b)||(a.length()>b.length())||(a[0]=='n'&&b[0]!='n'))&&k==0)

}else

e--;

if(n>0&&e0)

cout<<"err"<<'\n';

if(e==0&&m==d)

cout<<"yes"<<'\n';

if(e==0&&m!=d)

cout<<"no"<<'\n';

}return 0;

}

思路

用 \(dfs(x,len)\) 表示到第 \(x\) 個點 ,現在還可以走 \(len\) 個距離

所以 \(dfs(x,len)=dfs(y,dis[x]+len-dis[y]-z )\)

其中 \(y \in son(x)\)

我們標記走過的節點,如果第第二次經過的話,也就是有乙個零環,那我們就返回負一

然後我們列舉下乙個位置,看是否能不能繼續走,如果找到零環的話那就返回唄

如果找到的話,說明找到了第乙個點,我們建的是反圖,要從後往前走

然後就用死了的spfa

好難啊

#include #include #include #include #include #include #define int long long

using namespace std;

const int maxn=100005;

int t;

int dis[maxn],f[maxn][51];

int n,m,k,p;

bool vis[maxn][51];

struct node;

vectorg1[maxn],g2[maxn];

int dfs(int x,int len)

if(f[x][len]!=-1)

return f[x][len];

vis[x][len]=true;

for(int i=0;iq;

q.push(1);

dis[1]=0;

while(q.size())

} }}

int sol()

while(m--)

); g2[y].push_back(node);

}spfa();

int ans=0;

for(int i=0;i<=k;i++)

return ans;

}signed main()

;long double dist(node p,node q)

//並查集

int f[100010];

int get(int x)

void merge(int x,int y)

void init()

//並查集

int t;

int main()

; int tot1=0;

int lowest[1005]=;

int tot2=0;

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

if(a[i].low<=0)

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

}bool flag=false;

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

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

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

cout《思路

我們可以用動態開點線段樹

我們對 \(n\) 行除去最後一列建立線段樹,編號為 \(1\) 到 \(n-1\) ,最後一行為 \(0\) ,然後最後一列是編號為 \(n\)

這樣我們每次走人的時候,就只用操作每一行的末尾和每一列的了

不是特別懂

但是前面三十分似乎很好拿

#include #include #include #include #include #include #define int long long

using namespace std;

const int maxn=300005;

int n,m,q;

int mx;

int cnt;

int root[maxn];

vector g[maxn];

struct nodet[maxn<<4];

int upquery(int &p,int l,int r,int k)

}signed main()

else

}return 0;

}

NOIP2017解題報告

啊不小心點發布了,懶得刪了就這樣吧,雖然還沒寫完,也不打算寫了大概。d1t1 結論題 沒什麼好說的 d1t2 模擬 沒什麼好說的 d1t3 70分演算法其實比較好想。沒有0邊,就跑最短路,然後按dis從小到大轉移。場上最後十分鐘才發現單向邊,就沒時間考慮0邊,並且相當於 一樣排了個序,水了60 肯定...

noip2017解題報告題解

noip 2017 提高組題解 by 杜瑜皓 november 12,2017 1 math 輸出 ab a b。因為如果 x,y 是 ax by n 的一組解,那麼 x bt,y at 也是一組解,容易發現最大的不滿足的 x,y 為 1,a 1 b 1,1 即 n ab a b 無解。2 comp...

NOIP2017 提高組解題報告

day1總結 allsol今次day1該拿的分基本上都拿好了,就是題目太碼農了,調了很久沒太多時間去想t3,t3直接暴力水過就好。在比賽中,合理的使用了對拍,拍出了t1正解,也是頗為激動的。所以說還是平時比賽認真點,多打對拍什麼的嘛。day2加油epointt1 100 t2 100 t3 50 m...