[NOIp复习计划]:模拟
来源:互联网 发布:淘宝评价怎么添加视频 编辑:程序博客网 时间:2024/05/16 08:49
[luogu 1087] FBI树
乱搞
#include<cstdio>int n;char str[1<<11];int data[1<<11];void solve(int l,int r){ if(l==r){ if(data[r] - data[l-1])printf("I"); else printf("B"); return; } int mid = l+r>>1; solve(l,mid); solve(mid+1,r); if(data[r] - data[l-1] == 0){ putchar('B'); }else if(data[r] - data[l-1] == r-l+1){ putchar('I'); }else{ putchar('F'); }}int main(){ scanf("%d",&n);n = 1<<n; scanf("%s",str); for(int i=1;i<=n;i++){ data[i] = data[i-1] + str[i-1]-'0'; } solve(1,n); return 0;}
[bzoj 1635][Usaco2007 Jan]Tallest Cow 最高的牛
差分数组+map
#include<cstdio>#include<map>using namespace std;map<int,map<int,int> > hs;int n,I,h,r,a,b;const int maxn = 10005;int pre_sum[maxn];int main(){ scanf("%d%d%d%d",&n,&I,&h,&r); for(int i=1;i<=r;i++){ scanf("%d%d",&a,&b);if(a>b){a=a+b;b=a-b;a=a-b;} if(hs[a][b]==0){ pre_sum[a+1]--; pre_sum[b]++; hs[a][b]=1; } } int buf=0; for(int i=1;i<=n;i++){ buf += pre_sum[i]; printf("%d\n",h+buf); } return 0;}
[bzoj 1028][JSOI2007]麻将
乱搞
#include<cstdio>#include<iostream>#include<cstring>using namespace std;int n,m;int d[405],f[405],ans[405];bool check(){ bool is; for(int i=1;i<=n;i++){ if(d[i]>=2){ is=1; d[i]-=2; for(int j=1;j<=n+2;j++) f[j]=d[j]; for(int j=1;j<=n+2;j++){ if(f[j]<0){is=0;break;} f[j]%=3;f[j+1]-=f[j];f[j+2]-=f[j]; } d[i]+=2; if(is) return 1; } } return false;}int main(){ scanf("%d%d",&n,&m); int x; for(int i=1;i<=m*3+1;i++){ scanf("%d",&x); d[x]++; } bool is=0; for(int i=1;i<=n;i++){ d[i]++; if(check()){ is=1; ans[++ans[0]]=i; } d[i]--; } for(int i=1;i<=ans[0];i++){ printf("%d",ans[i]); if(i!=ans[0])printf(" "); } if(!is)printf("NO"); return 0;}
[bzoj 1088][SCOI2005]扫雷Mine
答案很小,于是乱搞。
#include<iostream>#include<cmath>#include<cstring>#include<cstdio>#include<algorithm>using namespace std;int N,a[10010],f[10010],ans=0;bool check(){ for(int i=2;i<=N;i++) f[i+1]=a[i]-f[i-1]-f[i]; if(f[N+1]) return 0; return 1;}int main(){ scanf("%d",&N); for(int i=1;i<=N;i++) scanf("%d",&a[i]); for(int i=0;i<=a[1];i++) { memset(f,0,sizeof(f)); f[1]=i; f[2]=a[1]-i; if(check()) ans++; } printf("%d\n",ans);}
[bzoj 1621][Usaco2008 Open]Roads Around The Farm分岔路口
不用dp,所以乱搞
#include<cstdio>typedef long long ll;ll n,k;ll solve(ll x){ if(x <= k || (x-k)&1 )return 1; return solve((x-k)>>1) + solve((x-k>>1)+k);}int main(){ scanf("%lld%lld",&n,&k); printf("%lld",solve(n)); return 0;}
阅读全文
0 0
- [NOIp复习计划]:模拟
- NOIP复习计划
- NOIP复习计划
- NOIP复习计划
- [NOIp复习计划]:贪心
- [NOIp复习计划]:二分答案
- [NOIp复习计划]:构造
- NOIP 2017 复习计划
- 2017-2018noip复习计划
- [NOIp复习计划]:差分约束
- [NOIp复习计划]:并查集
- [NOIp复习计划]:图的连通
- 复习计划
- 复习计划?
- 复习计划
- 复习计划
- 复习计划
- Noip模拟
- css基础学习
- bzoj 1202: [HNOI2005]狡猾的商人(带权并查集)
- Python的numpy.random模块中文简介
- hdu 2955 Robberies
- TCP握手和挥手
- [NOIp复习计划]:模拟
- 575. Distribute Candies
- 基站查询网址、软件、API接口汇总
- 华为优招面试失败反思
- C#客户端(WinForm)自动登录
- 跳转绝对地址
- 使用@Named注解(一个接口多个实现,匹配引入想要的实现类)
- 扎克伯格写给员工的Facebook内部PPT
- EA&UML日拱一卒-活动图::AcceptEventAction