题目来自:ZlycerQan和Myj大佬
T1
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
#define LL long long
int a[10000010<<1],b[10000010<<1],c[10000010<<1];
LL ans=0;
inline void read(int &x){
x=0; int f=1; char c=getchar();
while(c>'9'||c<'0'){ if(c=='-') f=-1; c=getchar(); }
while(c>='0'&&c<='9'){ x=x*10+c-'0'; c=getchar(); } x*=f;
}
int main(){
freopen("section.in","r",stdin);
freopen("section.out","w",stdout);
int x,n,d,m;
read(n),read(d);
for(int i=1;i<=n;++i){
read(x);
if(x==d) m=0;
else if(x<d) m=-1;
else if(x>d) m=1;
c[i]+=c[i-1]+m;
if(c[i]==0&&(i&1)) ++ans;
if(i&1) ans+=a[c[i]+n],++b[c[i]+n];
else if(!(i&1)) ans+=b[c[i]+n],++a[c[i]+n];
}
printf("%I64d\n",ans);
fclose(stdin);fclose(stdout);
return 0;
}
T2
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cstdlib>
#include<algorithm>
#include<ctime>
#include<map>
using namespace std;
map<long long,bool> mp;
int a[105],b[105],n,ans;
long long sum;
void DFS(int now,long long sum){
if(now==n+1){
if(!mp[sum]) ++ans,mp[sum]=1;
return ;
}
if(clock()>5700){
printf("%I64d\n",ans);
fclose(stdin),fclose(stdout);
exit(0);
}
for(int j=a[now];j<=b[now];++j)
DFS(now+1,sum+j*j);
}
int main(){
freopen("kinds.in","r",stdin);
freopen("kinds.out","w",stdout);
scanf("%d",&n);
for(int i=1;i<=n;++i)
scanf("%d %d",&a[i],&b[i]);
DFS(1,0);
printf("%I64d\n",ans);
fclose(stdin);
fclose(stdout);
return 0;
}
T3
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
#define MAXN 2005
double sumc,ans=0;
int n,x,y,k,v[MAXN],c[MAXN];
void read(int &x){
x=0; int f=1; char c=getchar();
while(c>'9'||c<'0'){ if(c=='-') f=-1; c=getchar(); }
while(c>='0'&&c<='9'){ x=x*10+c-'0'; c=getchar(); } x*=f;
}
int main(){
freopen("yuuka.in","r",stdin);
freopen("yuuka.out","w",stdout);
read(n);
for(int i=1;i<=n;++i)
read(x),read(y),read(v[i]),read(c[i]),sumc+=c[i];
read(k);
for(int i=1;i<=n;++i)
ans+=(v[i]*sumc/(n*1.0));
printf("%.3lf\n",ans);
fclose(stdin);fclose(stdout);
return 0;
}