noip 2015 提高組 合集
d1 t1 神奇的幻方
題目讓你幹啥你就幹啥,讓你咋走你就咋走就完事兒了
#include #include #include #include #define n 50using namespace std;
struct node
a[n*n];
int ans[n][n];
int main()
else if(a[i-1].x!=1&&a[i-1].y==n)
else if(a[i-1].x==1&&a[i-1].y==n)
else
else}}
for(int i=1;i<=n;i++)
}
d1 t2 資訊傳遞
由題目的描述,我們發現這是乙個基環內向森林。題目中問的是最多進行多少局,等價於求基環內向森林中所有基環的最小值。模擬即可。
#include #include #include #include #define n 200001using namespace std;
int a[n],f[n],v[n];
inline char nc()
int rd()
int main()
printf("%d",ans);
return 0;
}
d1 t3 鬥地主
挖坑代填
d2 t1 跳石頭
二分答案,二分出最大可能值,然後暴力驗證
#include #include #include #include using namespace std;int l,n,m,a[50010];
inline char nc()
int rd()
int check(int dist)
printf("%d\n",l);
}
d2 t2 子串
動態規劃
f[i][j][k]表示當前:a串列舉到了i,b串列舉到了j,已經找到了k個串切使用了a[i]的方案數。
g[i][j][k]................................不管使不使用a[i]的方案數。
然後因為空間問題,f[i][j][k],i壓滾動。
轉移sb
#include #include #include #include #define mod 1000000007#define n 210
using namespace std;
int f[2][n][n],g[2][n][n];
char s1[10010],s2[10010];
int main()}}
printf("%d\n",g[pre][m][k]);
return 0;
}
d2 t3 運輸計畫
一眼二分答案,關鍵是怎麼驗證。首先,我們對於每次詢問,都記錄出:這個詢問在不建立蟲洞的情況下的長度。
緊接著根據我們二分出的mid,對於一次距離大於mid的詢問樹上查分,記錄每條邊被多少詢問累計過。
然後我們邊權下放到點權,對於每條被所有大於mid的詢問經過的邊,我們判斷:是不是長度最長的詢問減去這條邊對應的邊權在mid內即可。
#include #include #include #include #define n 300010#define m 300010
using namespace std; int n,m;
inline char nc()
int rd()
struct line l[m]; inline bool cmp(const line &x,const line &y)
if(x==y) return x;
for(int i=25;~i;i--)
return f[x][0];
}void dfs_check(int pos,int fa)
}bool check(int x)
// printf("%d\n",begin);
for(int i=begin;i<=m;i++)
dfs_check(1,1);
for(int i=2;i<=n;i++)
}return false;
}void test()
void test1()
int main()
// if(m==1&&l[1])
for(int i=r-1;i<=l[m].v;i++)
puts("0");}/*
6 3
1 2 3
1 6 4
3 1 7
4 3 6
3 5 5
3 6
2 5
4 5*/
Noip2015提高組總結
總體而言noip還行吧,每天前兩題都穩穩地,但是最後一題做得不好。day1,看完題目後,第一題簽到,第二題很直觀想出來了,又畫了個圖驗證了一下,tarjan雖然可能爆棧,但人工棧就沒問題了。第三題認為是dp一類的東西。畢竟是第一次提高組,還是挺緊張的,一二題打得特別仔細特別慢,對拍,肉眼查錯,搞了接...
NOIP2015提高組解析
題目見此 day1 神奇的幻方 裸裸的模擬 其實也可以發現規律 i 1在i的右上方,如果已經有數了,就填在i的下方 include includeusing namespace std int a 50 50 int nx,ny,n int main else elseelse a tx ty i ...
NOIP 2015提高組 題解 分析
這一次的提高組出的題挺喪心病狂的,似乎比普及組還要容易看出演算法,隨便就400 我在洛谷上測得好像是500多。真不知ccf在想什麼?算了不說那麼多了,直接上分析 以下的題目中d1a表示第一天第一題,d2b表示第二天第三題,以此類推 題目演算法簡單分析 d1a 簡單模擬 d1b 直接掃一遍找最小環,或...