luogu
lcxdz
这个作者很懒,什么都没留下…
展开
-
P5440 【XR-2】奇迹 (筛质数
添加链接描述#include<bits/stdc++.h>using namespace std;const int N=1e5;int ans[10000000];int tot;bool is_prime(int n){ if(n<2)return 0; for(int i=2;i<=n/i;i++){ if(n%i==0)return 0; } return 1;}int t,a[N];int p[20]={0,原创 2021-09-23 09:42:58 · 243 阅读 · 0 评论 -
CF1559D1 Mocha and Diana (Easy Version)(并查集
添加链接描述#include<bits/stdc++.h>using namespace std;const int N=1e3+9,M=2e3+9;int n,m1,m2;int h1[N],e1[M],ne1[M],idx1;int h2[N],e2[M],ne2[M],idx2;int fa1[N],fa2[N];void add(int h[],int e[],int ne[],int idx,int a,int b){ e[idx]=b,ne[idx]=h[a],h[原创 2021-09-17 21:45:56 · 110 阅读 · 0 评论 -
P1241 括号序列 (模拟 栈
添加链接描述#include<bits/stdc++.h>using namespace std;int main(){ string s; stack<char>st; cin>>s; char flag[10000]={}; for(int i=0;i<s.size();i++){ if(s[i]=='('||s[i]=='['){ if(s[i]=='('){ flag[i]=')'; st.push(i);原创 2021-09-17 21:45:08 · 234 阅读 · 0 评论 -
P1247 取火柴游戏 (博弈论
添加链接描述#include<bits/stdc++.h>using namespace std;const int N=5e5+9;int arr[N];int main(){ int n,ans=0; scanf("%d",&n); for(int i=1;i<=n;i++){ scanf("%d",&arr[i]); ans^=arr[i]; } if(ans==0){ puts("lose"); return 0; } int原创 2021-09-17 21:44:13 · 196 阅读 · 0 评论 -
P5909 [CTSC2007]挂缀pendant (反悔贪心
添加链接描述#include<bits/stdc++.h>using namespace std;const int N=2e5+9;typedef long long ll;#define int long long struct node { int c,w;}t[N];bool cmp(node a,node b){ return a.c+a.w<b.c+b.w;}//M+w1-cpriority_queue<int> q;ll dp[N];原创 2021-09-17 21:41:56 · 198 阅读 · 0 评论 -
P1297 [国家集训队]单选错位 (数论
添加链接描述#include<bits/stdc++.h>using namespace std;const int N=1e7+9;typedef long long ll;ll a[N],n,A,B,C;int main(){ scanf("%d%d%d%d%d", &n, &A, &B, &C, a + 1); for (int i = 2; i <= n; i++) a[i] = ((long long) a[i - 1] * A原创 2021-09-17 21:31:14 · 107 阅读 · 0 评论 -
P1265 公路修建 (pirm
添加链接描述#include<bits/stdc++.h>using namespace std;const int N=5009;struct node { int x,y;}t[N];int vis[N],n;double d[N],ans;double get_dist(node a,node b){ return sqrt(1.0*(a.x-b.x)*(a.x-b.x)+1.0*(a.y-b.y)*(a.y-b.y));}void prim(){ for(i原创 2021-09-13 22:49:00 · 192 阅读 · 0 评论 -
P3870 [TJOI2009] 开关(分块模板
添加链接描述#include<bits/stdc++.h>using namespace std;const int N=1e5+9;int a[N],b[N],ans[N],n,m,sq,tag[N];void change(int x,int y){ for(int i=x;i<=min(y,(b[x])*sq);i++){ ans[b[i]]-=a[i]^tag[b[i]];//减去块内的元素 a[i]^=1; ans原创 2021-09-13 22:48:01 · 122 阅读 · 0 评论 -
P1244 [NOI2000] 青蛙过河 (推理
添加链接描述#include<bits/stdc++.h>using namespace std;long long ans;int main(){ long long k,h; cin>>h>>k; ans=(k+1)*(1<<h); cout<<ans<<endl; return 0;}原创 2021-09-13 22:47:23 · 247 阅读 · 0 评论 -
P3400 仓鼠窝 (单调栈 dp
添加链接描述#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=3e3+9;ll st[N],ch,dp[N],ans,depth[N];int main(){ int n,m; scanf("%d%d",&n,&m); for(int i=1;i<=n;i++){ int top=0; for(int j=原创 2021-09-13 22:46:13 · 164 阅读 · 0 评论 -
P1297 [国家集训队]单选错位 (数学
添加链接描述#include<bits/stdc++.h>using namespace std;const int N=1e7+9;typedef long long ll;ll a[N],n,A,B,C;int main(){ scanf("%d%d%d%d%d", &n, &A, &B, &C, a + 1); for (int i = 2; i <= n; i++) a[i] = ((long long) a[i - 1] * A原创 2021-09-13 22:44:59 · 111 阅读 · 0 评论 -
P1950 长方形 (单调栈
添加链接描述#include<bits/stdc++.h>const int N=3009;int n,m;char arr[N][N];int down[N],s[N],sum[N];using namespace std;long long ans;int main(){ scanf("%d%d",&n,&m); for(int i=1;i<=n;i++){ scanf("%s",arr[i]); } in原创 2021-09-11 22:16:51 · 205 阅读 · 0 评论 -
P3400 仓鼠窝 (单调栈 dp O(n*m
添加链接描述#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=3e3+9;ll st[N],ch,dp[N],ans,depth[N];int main(){ int n,m; scanf("%d%d",&n,&m); for(int i=1;i<=n;i++){ int top=0; for(int j=原创 2021-09-11 22:15:21 · 123 阅读 · 0 评论 -
P1183 多边形的面积 (数学
添加链接描述#include<bits/stdc++.h>//#pragma GCC optimize(2)//O2优化using namespace std;typedef long long ll;const int N=3000+10;int n,a[N],b[N];int ans;int main(){ cin>>n; for(int i=1;i<=n;i++) { cin>>a[i]>>b[i]; } a[n+1原创 2021-09-11 11:28:12 · 151 阅读 · 0 评论 -
P1191 矩形 (dp 求矩形个数
添加链接描述#include<bits/stdc++.h>const int N=159;using namespace std;char arr[N][N];int high[N];int main(){ int n,ans=0; cin>>n; for(int i=1;i<=n;i++){ scanf("%s",arr[i]); // cout<<arr[i]<<endl;原创 2021-09-11 11:27:13 · 155 阅读 · 0 评论 -
P1190 [NOIP2010 普及组] 接水问题(堆 模拟
添加链接描述#include<bits/stdc++.h>using namespace std;const int N=1e4+9;int arr[N];int main(){ int n,m; scanf("%d%d",&n,&m); for(int i=1;i<=n;i++){ scanf("%d",&arr[i]); } priority_queue<int,vector<int&原创 2021-09-11 11:25:57 · 160 阅读 · 0 评论 -
P1962 斐波那契数列 (矩阵快速幂
添加链接描述#include<bits/stdc++.h>typedef long long ll;const int N=5,mod=1e9+7;ll n;struct node { ll m[N][N];}ans,base;void init(){ for(int i=1;i<=2;i++){ ans.m[1][i]=1; } base.m[1][2]=base.m[2][2]=base.m[2][1]=1;}node原创 2021-09-08 19:32:14 · 80 阅读 · 0 评论 -
P3390 【模板】矩阵快速幂
添加链接描述#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=109,mod=1e9+7;struct node{ ll m[N][N];}ans,base;ll n,b;void init (int n){ memset(ans.m,0,sizeof ans.m); for(int i=1;i<=n;i++)ans.m[i][i]=1;//ans是原创 2021-09-08 19:26:38 · 93 阅读 · 0 评论 -
P2420 让我们异或吧 (到根节点的路径异或
添加链接描述#include<bits/stdc++.h>using namespace std;const int N=1e5+9,M=2e5+9;int h[N],ne[M],e[M],idx,w[M];void add(int a,int b,int c){ w[idx]=c; e[idx]=b,ne[idx]=h[a],h[a]=idx++;}int vis[N],val[N];void dfs(int u,int v){ val[u]=v;原创 2021-09-08 19:14:45 · 98 阅读 · 0 评论 -
P1939 【模板】矩阵加速(数列)
添加链接描述#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=5,mod=1e9+7;struct node{ ll m[5][5];}ans,base;//!qpow为n-m//!从n-m 到n//!base为n-m-1void init (){ memset(ans.m,0,sizeof ans.m); for(int i=1;i<=3;i+原创 2021-09-08 19:13:19 · 53 阅读 · 0 评论 -
P1351 [NOIP2014 提高组] 联合权值 (数论 图论枚举
添加链接描述#include<bits/stdc++.h>using namespace std;int n;const int N=2e5+10,M=4e5+10,mod=1e4+7;int h[N],e[M],ne[M],idx;void add(int a,int b){ e[idx]=b,ne[idx]=h[a],h[a]=idx++;}int arr[N];int ans,maxx;int main(){ memset(h,-1,sizeof h)原创 2021-09-07 22:43:00 · 101 阅读 · 0 评论 -
P7103 「C.E.L.U-01」族谱树 (dfs 树形dp
添加链接描述#include<bits/stdc++.h>using namespace std;const int N=5e6+9;int e[N],ne[N],h[N],idx,fa[N];int n,q;void add(int a,int b){ e[idx]=b,ne[idx]=h[a],h[a]=idx++;}int dp[N];int ans[N];inline int read(){ int s=0,w=1; char ch=getc原创 2021-09-07 22:41:23 · 157 阅读 · 0 评论 -
P2014 [CTSC1997]选课 (树形dp 分组背包 k<j
添加链接描述#include<bits/stdc++.h>using namespace std;const int N=310;int arr[N];int dp[N][N];//当前前i结点选j空间的课最大值int e[N],ne[N],idx,h[N];int n,m;void add(int a,int b){ e[idx]=b,ne[idx]=h[a],h[a]=idx++;}void dfs(int u){ for(int i=h[u];~i;i=原创 2021-09-07 16:52:55 · 155 阅读 · 0 评论 -
P1855 榨取kkksc03 (二维01背包
添加链接描述#include<bits/stdc++.h>using namespace std;const int N=209;int n,M,T;int w[N],t[N],dp[N][N];int main(){ cin>>n>>M>>T; for(int i=1;i<=n;i++){ cin>>w[i]>>t[i]; } for(int i=1;i<=n;i原创 2021-09-06 20:35:43 · 98 阅读 · 0 评论 -
P1757 通天之分组背包 (分组背包 模板
添加链接描述#include<bits/stdc++.h>using namespace std;int n,m;const int N=1e3+9;int arr[N][N];int C[N],mx;int w[N],v[N];int g[N][N],dp[N];int main(){ cin>>m>>n; for(int i=1;i<=n;i++){ int a,b,c; cin>>v原创 2021-09-06 18:54:55 · 105 阅读 · 0 评论 -
P1122 最大子树和 (树形dp
添加链接描述#include<bits/stdc++.h>using namespace std;const int N=32009;int w[N];int e[N],h[N],ne[N],idx,vis[N];void add(int a,int b){ e[idx]=b,ne[idx]=h[a],h[a]=idx++;}int dp[N];void dfs(int u,int fa){ dp[u]=w[u]; for(int i=h[u];~i;i原创 2021-09-06 18:54:05 · 93 阅读 · 0 评论 -
P1352 没有上司的舞会 (树形dp
添加链接描述#include<bits/stdc++.h>using namespace std;const int N=6e3+9;int n,w[N];int idx,e[N],ne[N],h[N],dp[N][2];void add(int a,int b){ e[idx]=b,ne[idx]=h[a],h[a]=idx++;}void dfs(int u){ dp[u][0]=0; dp[u][1]=w[u]; for(int i=h[u]原创 2021-09-06 18:53:01 · 121 阅读 · 0 评论 -
P1434 [SHOI2002]滑雪 (记忆化 dp
#include<bits/stdc++.h>using namespace std;const int N=110;int arr[N][N],mx;int dx[]={0,0,1,-1};int dy[]={1,-1,0,0};int n,m;int dp[N][N];int dfs(int x,int y){ if(dp[x][y])return dp[x][y]; dp[x][y]=1; for(int i=0;i<4;i++){原创 2021-09-06 18:51:16 · 205 阅读 · 0 评论 -
P1541 [NOIP2010 提高组] 乌龟棋 (多维dp
添加链接描述#include<bits/stdc++.h>using namespace std;const int N=400;int arr[N],step[5],dp[50][50][50][50];int main(){ int n,m; cin>>n>>m; for(int i=1;i<=n;i++){ cin>>arr[i]; } for(int i=1;i<=m;i++原创 2021-09-06 16:03:11 · 112 阅读 · 0 评论 -
P1095 [NOIP2007 普及组] 守望者的逃离 (贪心模拟
添加链接描述#include<bits/stdc++.h>using namespace std;const int N=110;int sum1,sum2;int main(){ int m,s,t; cin>>m>>s>>t; for(int i=1;i<=t;i++){ sum1+=17; if(m>=10)m-=10,sum2+=60; else m+=4;原创 2021-08-31 22:50:42 · 141 阅读 · 0 评论 -
P1091 [NOIP2004 提高组] 合唱队形 (最长上升子序列 线性dp
添加链接描述#include<bits/stdc++.h>using namespace std;const int N=110;int dpl[N],dpr[N],arr[N];int main(){ int n; cin>>n; for(int i=1;i<=n;i++){ cin>>arr[i]; } for(int i=1;i<=n;i++){ dpl[i]=1;原创 2021-08-31 22:49:07 · 116 阅读 · 0 评论 -
P1020 [NOIP1999 普及组] 导弹拦截 (二分 线性dp 最长上升子序列 最长不上升子序列
添加链接描述#include<bits/stdc++.h>using namespace std;const int N=1e5+9;int dp1[N],dp2[N];int main(){ int cnt1=0,cnt2=0,x; while(cin>>x){//求最长不上升子序列 int p=upper_bound(dp1,dp1+cnt1,x,greater<int>())-dp1;//下降序列找更小的 i原创 2021-08-31 22:47:34 · 133 阅读 · 0 评论 -
P1216 [USACO1.5][IOI1994]数字三角形 Number Triangles (线性dp
添加链接描述#include<bits/stdc++.h>using namespace std;const int N=1e3+9;int arr[N][N],dp[N][N];int main(){ int n; cin>>n; for(int i=1;i<=n;i++){ for(int j=1;j<=i;j++){ cin>>arr[i][j]; } }原创 2021-08-31 22:45:24 · 60 阅读 · 0 评论 -
P1060 [NOIP2006 普及组] 开心的金明 (01背包
添加链接描述#include<bits/stdc++.h>using namespace std;const int N=30,M=30000;int w[N],v[N],dp[M];//01背包int main(){ int V,n; scanf("%d%d",&V,&n); for(int i=1;i<=n;i++){ int a,b; scanf("%d%d",&a,&b);原创 2021-08-31 22:44:20 · 110 阅读 · 0 评论 -
P1359 租用游艇 (线性dp
添加链接描述#include<bits/stdc++.h>using namespace std;const int N=210;int g[N][N],dp[N];//前i个港口int main(){ int n; scanf("%d",&n); for(int i=1;i<n;i++){ for(int j=i+1;j<=n;j++){ scanf("%d",&g[i][j]);原创 2021-08-31 22:42:26 · 119 阅读 · 0 评论 -
P3370 【模板】字符串哈希
添加链接描述手动不如stl hash#include<iostream>#include<cstring>#include<algorithm>#include<cstdio>using namespace std;typedef unsigned long long ull;ull base=131;ull a[10010];char s[10010];int n,ans=1;int prime=233317; ull mod=21原创 2021-08-24 22:17:15 · 110 阅读 · 0 评论 -
CF1476B Inflation (思维
添加链接描述#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=109;ll sum;int main(){ int T; scanf("%d",&T); while(T--){ long long n,k; scanf("%lld%lld",&n,&k); sum=0; l原创 2021-08-24 22:15:56 · 156 阅读 · 0 评论 -
P3375 【模板】KMP字符串匹配 (模板 KMP
添加链接描述#include<bits/stdc++.h>using namespace std;const int N=1e6+9;int kmp[N],la,lb;char a[N],b[N];int main(){ scanf("%s",a+1); scanf("%s",b+1); la=(strlen(a+1)); lb=strlen(b+1); for(int i=2,j=0;i<=lb;i++){ while(j&原创 2021-08-24 22:14:57 · 117 阅读 · 0 评论 -
P7427 [THUPC2017] 玩游戏(数学 贪心
添加链接描述#include<bits/stdc++.h>using namespace std;typedef long long ll;int main(){ ll a,b; cin>>a>>b; ll sum=a+b; int p=sqrt(2*(a+b)); if((ll)p*(p+1)!=2*(a+b)){ cout<<"No"; } else { cou原创 2021-08-24 22:14:02 · 254 阅读 · 0 评论 -
P3951 [NOIP2017 提高组] 小凯的疑惑 / [蓝桥杯 2013 省] 买不到的数目 ( 数学
添加链接描述#include<bits/stdc++.h>using namespace std;typedef long long ll;int main(){ ll a,b; cin>>a>>b; cout<<a*b-a-b; return 0;}原创 2021-08-24 22:11:46 · 181 阅读 · 0 评论