NOIP模拟10.22
来源:互联网 发布:淘宝里的视频怎么转发 编辑:程序博客网 时间:2024/06/08 01:15
2014提高D2
A.无线网络发射器选址 暴力枚举选在哪即可。AC
B.寻找道路 图论+bfs+spfa AC
C.解方程 数论+筛法+枚举。 脑残没想到取模,去写高精度,结果当然是挂了。只拿了30.具体题解见这里
A
#include <bits/stdc++.h>using namespace std;#define N 30#define inf 0x3f3f3f3f#define ll long longinline int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar(); return x*f;}int d,n,x[N],y[N],val[N],ans=0,cnt=0;int main(){// freopen("a.in","r",stdin); d=read();n=read(); for(int i=1;i<=n;++i) x[i]=read(),y[i]=read(),val[i]=read(); for(int i=0;i<=128;++i) for(int j=0;j<=128;++j){ int x1=max(0,i-d),x2=min(128,i+d),y1=max(0,j-d),y2=min(128,j+d); int res=0; for(int k=1;k<=n;++k) if(x[k]>=x1&&x[k]<=x2&&y[k]>=y1&&y[k]<=y2) res+=val[k]; if(res>ans) ans=res,cnt=1;else if(res==ans) cnt++; } printf("%d %d\n",cnt,ans); return 0;}
B
#include <bits/stdc++.h>using namespace std;#define N 10010#define inf 0x3f3f3f3f#define ll long long#define M 200010inline int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar(); return x*f;}int n,m,s,t,h[N],num=0,h1[N],d[N];bool f[N],bad[N],inq[N];//f[i]--i能否到t,bad[i]--i能否在路径上 struct edge{ int to,next;}data1[M],data[M];inline void add(int x,int y){ data[++num].to=y;data[num].next=h[x];h[x]=num; data1[num].to=x;data1[num].next=h1[y];h1[y]=num;}void bfs(int ss){ queue<int>q;q.push(ss);f[ss]=1; while(!q.empty()){ int x=q.front();q.pop(); for(int i=h1[x];i;i=data1[i].next){ int y=data1[i].to;if(!f[y]) f[y]=1,q.push(y); } }}void spfa(){ queue<int>q;memset(d,inf,sizeof(d)); q.push(s);d[s]=0;inq[s]=1; while(!q.empty()){ int x=q.front();q.pop();inq[x]=0; for(int i=h[x];i;i=data[i].next){ int y=data[i].to; if(d[y]>d[x]+1){ d[y]=d[x]+1;if(!inq[y]) inq[y]=1,q.push(y); } } }}int main(){// freopen("b.in","r",stdin); n=read();m=read(); while(m--){ int x=read(),y=read();if(x==y) continue;add(x,y); }s=read();t=read();bfs(t); for(int x=1;x<=n;++x) for(int i=h[x];i;i=data[i].next){ int y=data[i].to;if(!f[y]){bad[x]=1;break;} }m=num;num=0;memset(h,0,sizeof(h)); for(int x=1;x<=n;++x){ if(bad[x]) continue; for(int i=h1[x];i;i=data1[i].next){ int y=data1[i].to;if(bad[y]) continue; data[++num].to=x;data[num].next=h[y];h[y]=num; } }spfa(); if(d[t]==inf) puts("-1"); else printf("%d\n",d[t]); return 0;}
C
#include <bits/stdc++.h>using namespace std;#define N 110#define inf 0x3f3f3f3f#define ll long longinline int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar(); return x*f;}int n,m,prime[3]={10007,10917,30071},a[N][3];bool f[40000][3];char s[10010];vector<int>ans;bool calc(int x,int j){ int tmp=a[n][j]; for(int i=n-1;i>=0;--i) tmp=(tmp*x+a[i][j])%prime[j]; return !tmp;}int main(){// freopen("a.in","r",stdin); n=read();m=read(); for(int i=0;i<=n;++i){ scanf("%s",s+1);int len=strlen(s+1); for(int j=0;j<3;++j){ if(s[1]=='-'){ int x=0; for(int ii=2;ii<=len;++ii) x=x*10+s[ii]-'0',x%=prime[j]; a[i][j]=-x; }else{ int x=0; for(int ii=1;ii<=len;++ii) x=x*10+s[ii]-'0',x%=prime[j]; a[i][j]=x; } } } for(int j=0;j<3;++j) for(int i=0;i<prime[j];++i) f[i][j]=calc(i,j); for(int i=1;i<=m;++i){ bool flag=1; for(int j=0;j<3;++j) if(!f[i%prime[j]][j]) flag=0; if(flag) ans.push_back(i); } printf("%d\n",ans.size()); for(int i=0;i<ans.size();++i) printf("%d\n",ans[i]); return 0;}
阅读全文
0 0
- NOIP模拟10.22
- Noip模拟
- 【NOIP模拟】20151004模拟
- 【NOIP模拟】 20151005模拟
- 【NOIP模拟】 20151006模拟
- 【NOIP模拟】 20151007模拟
- 【NOIP模拟】20151014模拟
- 【NOIP模拟】20151015模拟
- NOIP模拟(10.22)T1 姓名匹配
- NOIP模拟(10.22)T3 树
- 【09 NOIP 模拟】light
- [NOIP模拟]Day1
- 8.9CH NOIP模拟
- 8.10FCH NOIP模拟
- 8.13NOIP模拟
- 8.14NOIP模拟
- noip模拟赛 双城记
- Noip模拟总结
- Scala模式匹配
- 动态规划 背包问题
- 然而沼跃鱼早就看穿了一切
- c语言获取目录下的所有文件名
- 【Python】Python的类、对象、属性、方法
- NOIP模拟10.22
- 大数据学习23:hadoop-2.6.0-cdh5.7.0 编译,支持 native 和 snappy
- Ionic 简易侧拉框
- Photoshop——APP设计规范
- Android ImageView
- 129. Sum Root to Leaf Numbers
- BZOJ 1047 [HAOI2007]理想的正方形
- 摩尔斯密码简介
- 10.22周日