/*
string水过
*/
#include<bits/stdc++.h> #define N 1001 using namespace std;
int n,x,y,m,pre;
string str;
string s[N]; inline int read()
{
int x=,f=;char c=getchar();
while(c>''||c<''){if(c=='-')f=-;c=getchar();}
while(c>=''&&c<=''){x=x*+c-'';c=getchar();}
return x*f;
} int main()
{
freopen("y.in","r",stdin);
freopen("y.out","w",stdout);
n=read();
for(register int i=;i<=n;i++) cin>>s[i];
str="I_love_";
m=read();
for(register int i=;i<=m;i++)
{
x=read();y=read();
s[x]=str;s[x]+=s[y];pre=x;
}
cout<<s[];
return ;
}

/*
ai<=ai+1时
枚举每一个区间长度二分右端点
*/
#include<bits/stdc++.h> #define N 500001
#define ll long long using namespace std;
ll n,ans,K,m;
ll a[N],sum[N]; inline ll read()
{
int x=,f=;char c=getchar();
while(c>''||c<''){if(c=='-')f=-;c=getchar();}
while(c>=''&&c<=''){x=x*+c-'';c=getchar();}
return x*f;
} void work1()
{
while(m--)
{
K=read();ans=;
for(int j=;j<=n;j++)
{
for(int k=j;k<=n;k++)
{
ll res1=sum[k]-sum[j-];
ll res2=k-j+;
if(res1<=K*res2) ans++;
}
}
cout<<ans<<endl;
}
} void work2()
{
ll l,r,mid,tmp,lim;
while(m--)
{
K=read();ans=;lim=;tmp=;
for(int L=;L<=n;L++)
{
l=;r=n+;lim=L*K;
while(l<=r)
{
mid=(l+r)>>;
if(sum[mid]-sum[mid-L]<=lim && sum[mid])
tmp=mid,l=mid+;
else r=mid-;
}
if(tmp-L+>)
ans+=tmp-L+;
}
cout<<ans<<endl;
}
} int main()
{
freopen("h.in","r",stdin);
freopen("h.out","w",stdout);
n=read();
for(int i=;i<=n;i++) a[i]=read();
for(int i=;i<=n;i++) sum[i]=sum[i-]+a[i];
m=read();
if(n<=) work1();
else work2();
return ;
}

60暴力

/*
将数列减k转化为求区间和<=0的区间个数
前缀和,求多少l,r满足s[r]-s[l-1]<=0
即s[r]<=s[L](L=l-1)
树状数组求逆序对
*/
#include<bits\stdc++.h> #define N 50001
#define ll long long using namespace std;
ll n,m,k;
ll ori[N],a[N],b[N],tmp[N]; inline int discrete()
{
for(int i=;i<=n;i++) tmp[i]=a[i];
sort(tmp+,tmp+n+);
ll *end=unique(tmp+,tmp+n+);
for(int i=;i<=n;i++) a[i]=lower_bound(tmp+,end,a[i])-tmp;
return end-(tmp+);
} struct BinaryIndexedTree
{
int n; ll a[N]; static int lowbit(int x)
{
return x & -x;
} void clear()
{
for(int i=;i<=n;i++) a[i]=;
} ll query(int pos)
{
ll ans=;
for(int i=pos;i>;i-=lowbit(i)) ans+=a[i];
return ans;
} void update(int pos,int del)
{
for(int i=pos;i<=n;i+=lowbit(i)) a[i]+=del;
} }bit; inline ll read()
{
ll x=,f=;char c=getchar();
while(c>''||c<''){if(c=='-')f=-;c=getchar();}
while(c>=''&&c<=''){x=x*+c-'';c=getchar();}
return x*f;
} inline ll solve(int k)
{
ll ans=;
for(int i=;i<=n;i++)
{
a[i]=ori[i]-k+a[i-];
if(a[i]<=) ans++;
}
bit.n=discrete();
bit.clear(); for(int i=n;i>=;i--)
{
ans+=bit.query(a[i]);
bit.update(a[i],);
}
return ans;
} int main()
{
freopen("h.in","r",stdin);
freopen("h.out","w",stdout);
n=read();
for(int i=;i<=n;i++) ori[i]=read();
m=read();
while(m--)
{
k=read();
printf("%lld\n",solve(k));
}
}

#include<iostream>
#include<cstdio>
#include<cstring> #define N 3001 using namespace std;
int n,m,T,flag;
char ch;
bool e1[N][N],e2[N][N]; void floyed()
{
flag=;
for(int k=;k<=n;k++) for(int i=;i<=n;i++)
{
for(int j=;j<=n;j++)
if(i!=j && j!=k)
{
if(e1[i][k] && e1[k][j] && !e1[i][j]) flag=;
if(flag) break;
if(e2[i][k] && e2[k][j] && !e2[i][j]) flag=;
if(flag) break;
}
if(flag) break;
}
} int main()
{
freopen("p.in","r",stdin);
freopen("p.out","w",stdout);
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
memset(e1,,sizeof e1);
memset(e2,,sizeof e2);
for(int i=;i<=n;i++) for(int j=;j<=n;j++)
{
cin>>ch;
if(ch=='H') e1[i][j]=;
if(ch=='W') e2[i][j]=;
}
floyed();
if(flag) printf("N0\n");
else printf("YE5\n");
}
return ;
}

30暴力

/*
考虑u->v和v->w都被一个人占领
那么答案为N0的情况为
1.w->u 另一人占领
2.u->w 另一人占领
3.w->u 同一人占领
1,3有环
2 将一个人反向建图有环
所以两次拓扑排序判断是否有换即可
*/
#include<bits\stdc++.h> #define N 3001 using namespace std;
int n,m,k,ans,flag;
char s[N][N];
int e[N][N],in[N]; void T_sort()
{
memset(in,,sizeof in);
for(int i=;i<=n;i++) for(int j=;j<=n;j++)
if(e[i][j]) in[j]++;
for(int i=;i<=n;i++)
{
int u=;
for(int j=;j<=n;j++)
{
if(in[j]==)
{
u=j;in[j]=-;break;
}
}
if(!u){flag=;return;}
for(int j=;j<=n;j++) if(e[u][j]) in[j]--;
}
} int main()
{
freopen("p.in","r",stdin);
freopen("p.out","w",stdout);
int T;
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
flag=;
for(int i=;i<=n;i++) scanf("%s",s[i]+);
for(int k=;k<=;k++)
{
memset(e,,sizeof e);
for(int i=;i<=n;i++) for(int j=;j<=n;j++)
{
if(s[i][j]=='H') e[i][j]=;
if(s[i][j]=='W')
{
if(!k) e[i][j]=;
else e[j][i]=;
}
}
T_sort();
}
if(!flag) printf("YE5\n");
else printf("N0\n");
}
}

10.11NOIP模拟题(2)的更多相关文章

  1. 10.11NOIP模拟题(3)

    /* 可以看出,对于一段区间[L,R]如果统计了答案 若a[L]<a[R],那么当右端点往左移时答案不会更优,a[R]>a[L]同理 所以两个指针分别从头尾往中间扫那边小移哪边即可. */ ...

  2. 9.11NOIP模拟题

    NOIP模拟赛 by thmyl   题目名称 superman market Lemon_Soda 可执行文件名 superman market Lemon_Soda 输入文件 superman.i ...

  3. 10.13NOIP模拟题

    /* 容斥原理 考虑到a[i]要么不会太大,要么就对答案贡献很小 dfs即可 */ #include<bits/stdc++.h> #define ll long long #define ...

  4. 10.23NOIP模拟题

    叉叉题目描述现在有一个字符串,每个字母出现的次数均为偶数.接下来我们把第一次出现的字母 a 和第二次出现的 a 连一条线,第三次出现的和四次出现的字母 a 连一条线,第五次出现的和六次出现的字母 a ...

  5. 10.9NOIP模拟题

    /* big模拟 细节不少 remove表示这个玩意儿在这一秒有没有移动 注意在一秒内所有小葱一起移动,所以如果一个一个处理 别忘了“错位”这种情况 */ #include<iostream&g ...

  6. 10.12NOIP模拟题(2)

    /* 有谁知道这道题结论是怎么来的? 晚上问问学数学的孩子23333 */ #include<iostream> #include<cstdio> #include<cs ...

  7. 10.12NOIP模拟题(1)

    #include<iostream> #include<cstdio> #include<cstring> #include<queue> #defin ...

  8. poj 1008:Maya Calendar(模拟题,玛雅日历转换)

    Maya Calendar Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 64795   Accepted: 19978 D ...

  9. poj 1888 Crossword Answers 模拟题

    Crossword Answers Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 869   Accepted: 405 D ...

随机推荐

  1. Android RoundedBitmapDrawable:Android官方的圆角图形图象实现方案

     Android RoundedBitmapDrawable:Android官方的圆角图形图象实现方案 RoundedBitmapDrawable是Android在support v4的扩展包中新 ...

  2. 2018/3/3 解析ThreadLocal源码

    今天听到一个老哥说道ThreadLocal在源码设计上面的一些好处,于是决定把ThreadLocal源码彻底分析一下. 首先,我们来看下set方法 可以看到,这个方法里,先获得了当前线程,之后将当前线 ...

  3. 静态区间第k大(归并树)

    POJ 2104为例 思想: 利用归并排序的思想: 建树过程和归并排序类似,每个数列都是子树序列的合并与排序. 查询过程,如果所查询区间完全包含在当前区间中,则直接返回当前区间内小于所求数的元素个数, ...

  4. [bzoj1717][Usaco2006 Dec]Milk Patterns 产奶的模式_后缀数组_二分答案

    Milk Patterns 产奶的模式 bzoj-1717 Usaco-2006 Dec 题目大意:给定一个字符串,求最长的至少出现了$k$次的子串长度. 注释:$1\le n\le 2\cdot 1 ...

  5. Swap Nodes in Pairs(链表操作)

    Given a linked list, swap every two adjacent nodes and return its head. For example,Given 1->2-&g ...

  6. iis站点内存泄漏问题分析

    在一次上线过程中iis内存飙升,随后跟运维要到站点的dump文件,使用windbg分析了clr的内存分配,找到了问题的症结,先记录如下: 使用windbg加载dump文件 1.打开windbg,Fil ...

  7. 携程Apollo(阿波罗)配置中心使用Google代码风格文件(在Eclipse使用Google代码风格)(配合阿里巴巴代码规约快速设置)

    Apollo默认使用了Google的代码风格,文件放在这里: https://github.com/ctripcorp/apollo/tree/master/apollo-buildtools/sty ...

  8. 一个简单的Java文件工具类

    package com.xyworkroom.ntko.util; import java.io.File; import java.io.FileInputStream; import java.i ...

  9. TensorFlow-GPU环境配置之四——配置和编译TensorFlow

    首先,使用configure进行配置 配置完成后,使用bazel编译retrain命令,编译命令中加入--config=cuda即为启用GPU 编译进行中... 编译完成 编译完成后,调用retrai ...

  10. 在HTML中显示图片时希望如果图片不存在或者无法显示时,能够显示默认图片

    很多时候,在HTML中显示图片时希望如果图片不存在或者无法显示时,能够显示默认图片.可以通过以下方式: <img src="xxx.jpg" onError="th ...