2023 qbxt 笔记整理
Posted int-Hello-world
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2023 qbxt 笔记整理相关的知识,希望对你有一定的参考价值。
洛谷P4460
n<20,试试状压
设 \\(dp[i][j]\\) 表示状态为i,最后一个点为j(当前在点j)。
枚举当前点为i,要转移的点为k
转移:$ dp[i|(1<<k-1)][k]+=dp[i][j] $
还需要判断一下三点连线在不在同一条直线上。
代码:
#include<bits/stdc++.h>
#define int long long
using namespace std;
inline int read()
int x=0,f=0;char ch=getchar();
for(;!isdigit(ch);ch=getchar()) f|=(ch==\'-\');
for(;isdigit(ch);ch=getchar()) x=(x<<1)+(x<<3)+(ch^48);
return f?-x:x;
void print(int x)
if(x<0) putchar(\'-\'),x=-x;
if(x>9) print(x/10);
putchar(x%10+48);
const int Mod=1e8+7;
int n,m,dp[1<<20][20],ans;
int f[1<<20];
int map1[51][51];
int x[51],y[51];
bool ss(int a,int b,int c)
return ((x[a]-x[b])*(y[b]-y[c])==(x[b]-x[c])*(y[a]-y[b]));
signed main()
n=read();
for (int i=0;i<n;++i)
x[i]=read(); y[i]=read();
for (int i=1;i<(1<<n);++i)
f[i]=f[i>>1]+(i&1);
for (int i=0;i<n;++i)
for (int j=0;j<n;++j)
if (i==j) continue;
for (int k=0;k<n;++k)
if (k==i||k==j) continue;
if ((((x[k]-x[i])*(x[k]-x[j])<0)||((y[k]-y[i])*(y[k]-y[j])<0))&&ss(i,k,j))
map1[i][j]|=(1<<k);
for (int i=0;i<n;++i)
dp[1<<i][i]=1;
for (int i=1;i<(1<<n);++i)
for (int j=0;j<n;++j)
if(dp[i][j]&&((1<<j)&i))
if (f[i]>=4) ans=(ans+dp[i][j])%Mod;
for (int k=0;k<n;++k)
if (!((1<<k)&i)&&(map1[j][k]&i)==map1[j][k])
dp[i|(1<<k)][k]=(dp[i|(1<<k)][k]+dp[i][j])%Mod;
cout<<ans;
return 0;
QBXT学习计划
众所周知,清北学堂是一个认真摸鱼学习的地方
时间:2020.1.15 地点:中国海洋大学
行程:
整体还比较顺利,就是CYC下火车之后非要做地铁,于是带着YRQ走了3公里。。。(YRQ爷我错了)
内容:
学习目标
1.认真听讲
啊现在在高中部也学习了一段时间了,清北学堂的课程强度应该也能适应。怎么说呢,初三了,不能再和之前一样摸鱼玩游戏了,好好学习才是重要的。
2.整理笔记
尽量整理笔记,如果整理好笔记就可以发好看的博客啦!!!
3.尽量预习
每天看看第二天讲什么,尽力提前学习一下,要不然可能真的做不完
4.例题处理
例题了解思路,练习题讲过的了解思路,其他的记一下题号回来做
需要预习的知识
1.同余基础,逆元,计数问题
2.st表,RMQ,LCA,二叉堆,二叉搜索树,哈希
3.次小生成树,次短路径算法,拓扑排序,树上倍增,二分图
4.记忆化搜索
5.模拟考试的例题
自习计划
1.D2 整理笔记,预习1
2.D3 整理笔记,预习2
3.D4 整理笔记,预习3
4.D5 整理笔记复习例题,整理D1考试题
5.D6 尽量上午整理完上午笔记,晚上写写考试题思路
学不下去就戴上耳机写写学校作业,也不能颓
以上是关于2023 qbxt 笔记整理的主要内容,如果未能解决你的问题,请参考以下文章