NOIP2016 Day2
来源:互联网 发布:网易云音乐推荐算法 编辑:程序博客网 时间:2024/06/15 12:33
T1
杨辉三角算组合数+二维前缀和 水爆
分值:100
CODE
#include<cstdio>#define N 2005int C[N][N],cnt[N][N],t,k,n,m;int main() { scanf("%d %d",&t,&k); for(int i=1;i<=2000;i++){ C[i][0]=C[i][i]=1; for(int j=1;j<i;j++){ cnt[i][j]=cnt[i-1][j]+cnt[i][j-1]-cnt[i-1][j-1]; C[i][j]=(C[i-1][j]+C[i-1][j-1])%k; if(C[i][j]==0)cnt[i][j]++; } cnt[i][i]=cnt[i][i-1]; } while(t--) { scanf("%d %d",&n,&m); printf("%d\n",cnt[n][n<m?n:m]); } return 0;}
T2
三个数组模拟单调队列
分值:100
CODE
#include<cstdio>#include<algorithm>#define N 100005#define M 7100005using namespace std;int n,m,q,u,v,t;double p;int Q[N],Q2[M],Q3[M],l1=1,l2=1,l3=1,r1,r2,r3;inline int top() { int t1=-2e9,t2=-2e9,t3=-2e9; if(l1<=r1)t1=Q[l1]; if(l2<=r2)t2=Q2[l2]; if(l3<=r3)t3=Q3[l3]; if(t1>=t2&&t1>=t3) { l1++; return t1; } if(t2>=t1&&t2>=t3) { l2++; return t2; } l3++; return t3;}bool cmp(int _,int __) {return _>__;}int main() { int i; scanf("%d%d%d%d%d%d",&n,&m,&q,&u,&v,&t); p=1.0*u/v; for(i=1; i<=n; i++)scanf("%d",&Q[i]); sort(Q+1,Q+1+n,cmp); r1=n; int inc=0; for(i=1; i<=m; i++) { int x=top()+inc; inc+=q; Q2[++r2]=floor(x*p)-inc; Q3[++r3]=x-floor(x*p)-inc; if(i%t==0)printf("%d ",x); } puts(""); for(i=1; i<=n+m; i++) { int ans=top(); if(i%t==0)printf("%d ",ans+q*m); } return 0;}
T3
状压dp
分值:100
CODE
#include<cstdio>#include<memory.h>struct node {double x,y;} A[20];int B[405],dp[1<<19];inline void Min(int &x,int y){if(x>y)x=y;}inline double Abs(double x){return x>0?x:-x;}inline node calc(node x,node y) { double y1=x.y,y2=y.y; double k1=x.x*x.x,k2=y.x*y.x; double b1=x.x,b2=y.x; double s1=k1/k2,s2=b1/b2; node t; t.y=(y1-y2*s1)/(b1-b2*s1); t.x=(y1-y2*s2)/(k1-k2*s2); return t;}inline bool Judge(node a,node x,node y) { if(Abs(a.x*x.x*x.x+a.y*x.x-x.y)>1e-6)return 0; if(Abs(a.x*y.x*y.x+a.y*y.x-y.y)>1e-6)return 0; return 1;}int main() { int T; scanf("%d",&T); while(T--) { int n,m; scanf("%d%d",&n,&m); for(int i=1; i<=n; i++) scanf("%lf%lf",&A[i].x,&A[i].y); int n1=0; for(int i=1; i<=n; i++) { for(int j=i+1; j<=n; j++) { node a1=calc(A[i],A[j]); if(a1.x>=0||!Judge(a1,A[i],A[j]))continue; int h=(1<<(i-1))|(1<<(j-1)); for(int k=j+1; k<=n; k++) if(Judge(a1,A[i],A[k])) h+=(1<<(k-1)); B[++n1]=h; } B[++n1]=1<<(i-1); } memset(dp,63,sizeof dp); dp[0]=0; for(int i=0; i<(1<<n); i++) for(int j=1; j<=n1; j++) Min(dp[i|B[j]],dp[i]+1); printf("%d\n",dp[(1<<n)-1]); } return 0;}
阅读全文
2 0
- NOIP2016 DAY2
- NOIP2016 DAY2
- NOIP2016 Day2
- NOIP2016 Day2
- NOIP2016 day2 t2蚯蚓
- P4241【NOIP2016 DAY2】蚯蚓
- NOIP2016提高组Day2
- 【NOIP2016提高组day2】蚯蚓
- NOIP2016提高组day2 蚯蚓
- 【NOIP2016提高组day2】愤怒的小鸟
- NOIP2016提高组day2 天天爱跑步
- NOIP2016提高组day2 愤怒的小鸟
- noip2016 Day2 T2:蚯蚓 (归并)
- [luogu-2877]noip2016-day2-T2 蚯蚓 题解
- UOJ264 NOIP2016 day2 T2 蚯蚓(队列)
- P4242【NOIP2016 DAY2】愤怒的小鸟
- 蚯蚓 NOIP2016 提高组 Day2 T2
- NOIP2016提高组复赛day2 组合数问题
- 李开复给中国大学生的七封公开信(其六)
- uboot学习(1)
- 【fjsd 1261】整数拆分
- [NOIP2017模拟]游戏
- Python 操作MongoDB数据库
- NOIP2016 Day2
- 一 统计学习理论前奏:大数定理的发展脉络
- bzoj3231[Sdoi2008]递归数列
- NKOJ P2419 【单调队列】集合的第N大元素
- 目录【Struts2】
- 配置redis外网可访问
- 15.3.2 FileWriter
- 抽象类与接口
- java学习第40天,队列 栈