題目鏈結
答案是求c1
x+1∗
ck−1
n−1/
ckn+
x 取得最大值時的x值。
數學題。
化簡,求單調性。
對每一門成績都建一棵樹。
每條邊都加一條反向邊。
能夠通過正向邊到達的點都是比自己成績低的,反向邊則是比自己高的。
最好成績是只有三門成績蒐比自己高時才比自己高。
最壞成績是只有三門都比自己低時才比自己低。
求交集即可。
#include
#include
#include
#include
#define ll long long
using
namespace
std;
const
int m=1e6+77;
const
int n=5e4+77;
int n,k,m,ans1,ans2;
int head[n],nxt[m],to[m],color[m],tot;
int head2[n],nxt2[m],to2[m],color2[m],tot2;
bool vis[n][4][2];
void add(int x,int y,int z)
void add2(int x,int y,int z)
void dfs1(int x,int col)
}} void dfs2(int x,int col)
}}int main()
for(int i=1;i<=k;i++)
for(int i=2;i<=n;i++)
}if(!flag) ans1++;
flag=0;
for(int j=1;j<=k;j++)//三科都比他高
} if(!flag) ans2++;
}printf("%d %d\n",n-ans1,ans2+1);
return
0;}
將時間離散化。
設 dp i 表示:最後打老鼠發生在時間 i,可以得到的最大價
值。 則 dp i = max(dp j + f(cnt i,j )),0 ≤ j < i,其中 cnt i,j 表示:在
i 時間可以被打到,但是在 j 時間不會被打到的老鼠的數量。
總複雜度 o(n^2)。
#include
#include
#include
#include
#define ll long long
using namespace std;
const int n=1e3+77;
int n,a,b,c,maxr,ans;
struct hq[n];
ints[2
*n],cnt;
int num[2
*n][2
*n];//num[i][j]表示在j位置打不到但是在i上能夠打到的老鼠的數量
int dp[2
*n];
bool cmp(h x,h y)
int f(int
x)int main()
sort(s+1,s+cnt+1);
intm=unique(s+1,s+cnt+1)-s-1;
for(int i=1;i<=n;i++)
//離散化
for(int i=1;i<=n;i++)
for(int i=0;i<=maxr;i++)
洛谷八連測 R7
list 題目鏈結 t1 每次spfa 或者bfs 時間複雜度o spfa q 每次先把每乙個查詢的特殊點入隊,距離為0 spfa或者bfs即可。include include include include include include define ll long long using nam...
浴谷八連測R4
題解 第一題水題,直接模擬就行了。include include include using namespace std template inline void read t x char s 100100 int main else if flag printf s s return0 題解 要...
浴谷八連測R4題解
一開始出了點bug能看見排行榜,於是我看見我半個小時就a掉了前兩題,信心場qaq t1字串題就不說了qwq include include include include include define ll long long using namespace std const int maxn 5...