C++算法训练第九天
以下为牛客挑战
今日收获
- 学到了三元组,就是当我们从一大堆数中选着3个数的方案。就是不一样位置的数如果相同,但是角标不一样也算不一样的。常规3层for循环而三元组---》prev2相当于前面所组成的二元组的个数,prev表示前面的数的和,an+前面组合的数x单前的数。--》三元组。cnt[i]i的个数ll prev = 0, prev2 = 0; REP(i, 26) { ans += prev2 * cnt[i]; prev2 += prev * cnt[i]; prev += cnt[i]; }对BFS可用魔法的更深入一层。
复制代码 牛客周赛 Round 121
幽幽子想吃东西
A-幽幽子想吃东西_牛客周赛 Round 121 (nowcoder.com)
解题代码
[code]#include#define int long long#define lll __uint128_t#define PII pair#define endl '\n'using namespace std;#define yn(ans) printf("%s\n", (ans)?"Yes":"No");//快速打印#define YN(ans) printf("%s\n", (ans)?"YES":"NO");#define REP(i, e) for (int i = 0; i < (e); ++i)#define REP1(i, s, e) for (int i = (s); i > t; while (t--)#define TESTconst int N=2e5+10,M=1e3+10,mod=1e9+7;//int a[N],b[N],c[N],pre[N];signed main(){ std::ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int a,b,c,n; cin>>a>>b>>c>>n; int m=a*n; if(nx; vectors(n+1); for(int i=1;i>s; } for(int i=1;i>y1>>x2>>y2; g[x1][y1]|=1; g[x2][y2]|=2; }//初始化宿主 for(int i=1;i |