2019牛客暑期多校訓練營(第五場)
題號標題
已通過**
題解/討論
通過率團隊的狀態
adigits 2
1016/2378通過b
generator 1
513/3524通過c
generator 2
34/592已補d
generator 3
4/23
未通過e
independent set 1
36/98
隊友已補
fmaximum clique 1
77/779
隊友已補
gsubsequence 1
494/2432通過h
subsequence 2
278/1311通過i
three points 1
125/2614
未通過j
three points 2
4/70
隊友已補
lwqtql:
zgtql:
矩陣快速冪#include using namespace std;
int t;
int n;
int main()
return 0;
}
寫了篇題解#include using namespace std;
typedef long long ll;
ll mod;
struct node ;
node mul(node x, node y)
node pow_mod(node x, ll y)
return res;}
char s[1000005];
int ss[1000005];
int main()
}ss[len]--;
for(int i = len; i >= 1; i--)
} node now;
now.c[0][0] = now.c[1][1] = 1ll; now.c[0][1] = now.c[1][0] = 0ll;
for(int i = 1; i <= len; i++)
ll ans = now.c[0][0] * x1 % mod + now.c[0][1] * x0 % mod;
ans %= mod;
printf("%lld\n", ans);
return 0;
}
bsgs
位元狀壓dp
思路跟標程反了。一直沒調對,不知道那裡出錯了。#include using namespace std;
char dp[1 << 26];
int adj[30];
int main()
for(int i = 0; i < n; i++) adj[i] = (~adj[i]), adj[i] ^= (1 << i);
//puts("??");
for(int i = 1; i < (1 << n); i++)
int ans = 0;
for(int i = 1; i < (1 << n); i++) ans += dp[i];
printf("%d\n", ans);
return 0;
}
下面是按照標程思路寫的。思路也不是很難,如果按照長度等不等區分開來進行dp的話,就要額外維護乙個東西。
#include using namespace std;
const int n = 3030;
const int mod = 998244353;
typedef long long ll;
char s[n],t[n];
int n,m;
ll d[n][n],c[n][n];
void predo()
}cout《對於每兩個字母,都能知道單個字元前面有多少個別類字元,所有的情況加起來後就知道前面總共有多少個字元了。不可能的情況可能出現在
#include using namespace std;
const int n = 10010;
int num[20][10010];
int tot[20];
int n,m;
char s[n];
char ans[10*n];
int main()
scanf("%s",s);
int cnta = 0,cntb = 0;
for(int i=0;i= n)
ans[num[i][j] + j-1] = 'a'+i;
} if(!flag)break;
}int sum = 0;for(int i=0;iif(sum != n)flag = false;
ans[sum] = '\0';
if(flag)printf("%s\n",ans);
else printf("-1");
return 0;
}
2020牛客暑期多校訓練營(第五場)
總結 f題添老師一發ac,i 題起初不會做在想怎麼化簡那個式子,後來就直接畫出了最優的圖,然後猜了一發2 3過了。ef 一級目錄 一級目錄 一級目錄 乙個包括n個音符的陣列,音符按下標1 n排列,表示音符由低到高。有兩個操作 drop 2 將第二高的音符移到最低的位置 即將倒數第二個移到第乙個。in...
2019牛客暑假多校訓練營(第五場)
矩陣快速冪,a n,n特別大,想到求某數sum sum 10 s i 0 可以把n一位一位拆開,ans ans 10 st s i 0 指數相加所以分開相乘 十進位制優化類似快速冪!includeusing namespace std typedef long long ll const ll ma...
2019牛客暑期多校訓練營(第五場)I題題解
給定乙個矩形區域,在裡面構造三個點使得其之間的距離等於給定的值 如圖所示,先取 0,0 作為第一點,然後分兩種情況 在x軸上或矩形右邊界找第二個點,最後用餘弦定理和角度關係求出第三點。注意 因為可能會出現超過w,h邊界的情況,我們可以列舉三個點對應放哪個位置來保證答案合法。很好寫 1 define ...