开始填坑_(:з」∠)_

628A - Tennis Tournament    20171124

小学数学题,\((x,y)=((n-1)\cdot(2b+1),np)\)

#include<stdlib.h>
#include<stdio.h>
#include<math.h>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int n,b,p,x,y;
int main()
{
scanf("%d%d%d",&n,&b,&p);
x=(n-)*(*b+),y=n*p;
printf("%d %d\n",x,y);
return ;
}

628B - New Skateboard    20171124

由于能根据末尾的两个数字判断出是否为4的倍数,直接每相邻两位判断一下就好了

#include<stdlib.h>
#include<stdio.h>
#include<math.h>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
#define LL long long
string s;
LL ans;
bool check(int k){return k%==;}
int main()
{
cin>>s;
ans=check(s[]-'');
for(LL i=;i<s.size();i++)
ans+=check(s[i]-''),ans+=i*check(s[i-]*+s[i]);
printf("%I64d\n",ans);
return ;
}

628C - New Skateboard    20171124

让每一位修改产生的距离尽可能大即可

#include<stdlib.h>
#include<stdio.h>
#include<math.h>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
string s;
int n,k,f[];
int main()
{
scanf("%d%d",&n,&k);
cin>>s;
for(int i=;i<=n;i++)
f[i]=max(s[i-]-'a','z'-s[i-])+f[i-];
if(f[n]<k)return printf("-1\n"),;
for(int i=;i<n;i++)
{
if(k>=f[i+]-f[i])
s[i]=(s[i]-'a'>'z'-s[i])?'a':'z';
else s[i]=(s[i]-k>='a')?s[i]-k:s[i]+k;
k-=f[i+]-f[i];if(k<=)break;
}
cout<<s<<endl;return ;
}

628D - Magic Numbers    20190301

比较恶心的DP,首先将区间\((l,r)\)的询问转化为两次对区间\((1,n)\)的询问

令\(f[i][j][k]\)表示当前进行到第\(i\)位,除以\(m\)的余数为\(j\)时,与\(n\)的大小关系为\(k\)的方案数

循环时\(i\)从\(1\)到\(n\),通过枚举第\(i\)位的数字来推出\(j\)进行转移

接下去就是各种细节处理了

#include<bits/stdc++.h>
using namespace std;
#define N 2005
#define LL long long
#define MOD 1000000007
LL m,d,f[N][N][],ans;
char s[N];
LL rua()
{
LL n=strlen(s+);
memset(f,,sizeof(f));
for(LL j=;j<=;j++)if(j!=d)
{
if(j<s[]-'')f[][j%m][]++;
if(j==s[]-'')f[][j%m][]++;
if(j>s[]-'')f[][j%m][]++;
}
for(LL i=;i<n;i++)
for(LL j=;j<m;j++)
for(LL k=;k<;k++)if(f[i][j][k])
{
//cout<<i<<" "<<j<<" "<<k<<" "<<f[i][j][k]<<endl;
if(i&)
{
if(k==)(f[i+][(j*10ll+d)%m][k]+=f[i][j][k])%=MOD;
if(k==)
{
if(d<s[i+]-'')(f[i+][(j*10ll+d)%m][]+=f[i][j][k])%=MOD;
else if(d==s[i+]-'')(f[i+][(j*10ll+d)%m][]+=f[i][j][k])%=MOD;
else if(d>s[i+]-'')(f[i+][(j*10ll+d)%m][]+=f[i][j][k])%=MOD;
}
if(k==)(f[i+][(j*10ll+d)%m][k]+=f[i][j][k])%=MOD;
continue;
}
for(LL l=;l<=;l++)if(l!=d)
{
if(k==)(f[i+][(j*10ll+l)%m][k]+=f[i][j][k])%=MOD;
if(k==)
{
if(l<s[i+]-'')(f[i+][(j*10ll+l)%m][]+=f[i][j][k])%=MOD;
else if(l==s[i+]-'')(f[i+][(j*10ll+l)%m][]+=f[i][j][k])%=MOD;
else if(l>s[i+]-'')(f[i+][(j*10ll+l)%m][]+=f[i][j][k])%=MOD;
}
if(k==)(f[i+][(j*10ll+l)%m][k]+=f[i][j][k])%=MOD;
}
}
LL res=;
//for(LL j=0;j<m;j++)for(LL k=0;k<2;k++)if(f[n][j][k])cout<<n<<" "<<j<<" "<<k<<" "<<f[n][j][k]<<endl;
for(LL i=;i<n;i++)
for(LL k=;k<;k++)
(res+=f[i][][k])%=MOD;
(res+=f[n][][]+f[n][][])%=MOD;
return res;
}
bool check()
{
LL n=strlen(s+);
for(LL i=;i<=n;i++)
{
if((i&) && s[i]==d+'')
return false;
if(i%== && s[i]!=d+'')
return false;
}
LL r=;
for(LL i=;i<=n;i++)
r=(r*+s[i]-'')%m;
return r==;
}
int main()
{
scanf("%I64d%I64d",&m,&d);
scanf("%s",s+);
ans=MOD-rua()+check();
//cout<<rua()<<endl;
scanf("%s",s+);
ans+=rua();
//cout<<rua()<<endl;
return printf("%I64d\n",ans%MOD),;
}

628E - Zbazi in Zeydabad    20190305

这题只能说。。。bitset大法好,莽就完事了

#include<bits/stdc++.h>
using namespace std;
#define N 3005
#define LL long long
LL n,m,ans;
bitset<N>a[N],b[N],c[N];
int get()
{
char ch=getchar();
while(ch!='.' && ch!='z')ch=getchar();
return ch=='z';
}
int main()
{
scanf("%I64d%I64d",&n,&m);
for(LL i=;i<n;i++)
for(LL j=;j<m;j++)
a[i][m-j-]=get(),b[i].set(),c[i].set();
for(LL i=;i<min(m,n);i++)
{
for(LL j=;j<n;j++)b[j]&=a[j]>>i;
for(LL j=;j<n-i;j++)c[j]&=a[j+i]>>i,ans+=(b[j]&b[j+i]&c[j]).count();
}
return printf("%I64d\n",ans),;
}

628F - Bear and Fair Set    20190306

标解是网络流,但是有种瞎搞的方法不知道为什么能过_(:з」∠)_

考虑\(\{0,1,2,3,4\}\)的所有子集\(A\),对每个区间,计算出满足\(i\%5\epsilon A\)的\(i\)的个数,并与该区间可取数字的个数取\(min\),加起来后若个数小于\(\frac{|A|\cdot n}{5}\),则一定无解

若考虑完所有子集后依旧没有出现不合法的情况,则一定有解(本弱不会证,求大佬证明)

#include<bits/stdc++.h>
using namespace std;
#define mp make_pair
int nn,n,b,q;
vector<pair<int,int> >d;
int main()
{
d.push_back(mp(,));
scanf("%d%d%d",&n,&b,&q),nn=n;
d.push_back(mp(b,n));
for(int i=;i<=q;i++)scanf("%d%d",&b,&n),d.push_back(mp(b,n));
sort(d.begin(),d.end());
for(int i=;i<=q;i++)
if(d[i].second>d[i+].second || d[i+].second-d[i].second>d[i+].first-d[i].first)
return printf("unfair\n"),;
for(int k=;k<;k++)
{
int res=;
for(int i=;i<=q+;i++)
{
int cnt=;
for(int j=d[i-].first+;j<=d[i].first;j++)
cnt+=bool((<<(j%))&k);
res+=min(cnt,d[i].second-d[i-].second);
}
if(res<nn/*__builtin_popcount(k))return printf("unfair\n"),;
}
printf("fair\n");
return ;
}

Educational Codeforces Round 8的更多相关文章

  1. [Educational Codeforces Round 16]E. Generate a String

    [Educational Codeforces Round 16]E. Generate a String 试题描述 zscoder wants to generate an input file f ...

  2. [Educational Codeforces Round 16]D. Two Arithmetic Progressions

    [Educational Codeforces Round 16]D. Two Arithmetic Progressions 试题描述 You are given two arithmetic pr ...

  3. [Educational Codeforces Round 16]C. Magic Odd Square

    [Educational Codeforces Round 16]C. Magic Odd Square 试题描述 Find an n × n matrix with different number ...

  4. [Educational Codeforces Round 16]B. Optimal Point on a Line

    [Educational Codeforces Round 16]B. Optimal Point on a Line 试题描述 You are given n points on a line wi ...

  5. [Educational Codeforces Round 16]A. King Moves

    [Educational Codeforces Round 16]A. King Moves 试题描述 The only king stands on the standard chess board ...

  6. Educational Codeforces Round 6 C. Pearls in a Row

    Educational Codeforces Round 6 C. Pearls in a Row 题意:一个3e5范围的序列:要你分成最多数量的子序列,其中子序列必须是只有两个数相同, 其余的数只能 ...

  7. Educational Codeforces Round 9

    Educational Codeforces Round 9 Longest Subsequence 题目描述:给出一个序列,从中抽出若干个数,使它们的公倍数小于等于\(m\),问最多能抽出多少个数, ...

  8. Educational Codeforces Round 37

    Educational Codeforces Round 37 这场有点炸,题目比较水,但只做了3题QAQ.还是实力不够啊! 写下题解算了--(写的比较粗糙,细节或者bug可以私聊2333) A. W ...

  9. Educational Codeforces Round 60 (Rated for Div. 2) - C. Magic Ship

    Problem   Educational Codeforces Round 60 (Rated for Div. 2) - C. Magic Ship Time Limit: 2000 mSec P ...

  10. Educational Codeforces Round 60 (Rated for Div. 2) - D. Magic Gems(动态规划+矩阵快速幂)

    Problem   Educational Codeforces Round 60 (Rated for Div. 2) - D. Magic Gems Time Limit: 3000 mSec P ...

随机推荐

  1. 使用Mac下的sequel Pro链接数据库时提示错误(已解决)

    使用Mac下的sequel Pro链接数据库时,出现如下问题: ? 1 MySQL said: Authentication plugin 'caching_sha2_password' cannot ...

  2. 封装selenium自动化框架中的截图功能

    对selenium自带的截图功能进行封装: 以下为封装的代码,自定义一个.py文件即可,图片路径自己设置一个. #coding:utf-8 class Screen(object): ''' 封装的截 ...

  3. 【medium】78. Subsets

    求集合不重复的子集: 下面python的写法很好啊! class Solution(object): def subsets(self, nums): """ :type ...

  4. 基于用户的协同过滤电影推荐user-CF python

    协同过滤包括基于物品的协同过滤和基于用户的协同过滤,本文基于电影评分数据做基于用户的推荐 主要做三个部分:1.读取数据:2.构建用户与用户的相似度矩阵:3.进行推荐: 查看数据u.data 主要用到前 ...

  5. JS学习过程中碰到的小问题

    使用循环语句查找通讯录 //Setup var contacts = [ { "firstName": "Akira", "lastName" ...

  6. linux统配符

    linux通配符注意:linux的通配符和三剑客的表达式是不一样的,因为,代表的意义是有较大区别的.通配符一般用户命令行bash环境,而linux正则表达式用于grep,sed,awk场景. *    ...

  7. C++中的继承(2)类的默认成员

    在继承关系里面, 在派生类中如果没有显示定义这六个成员函数, 编译系统则会默认合成这六个默认的成员函数. 1.构造与析构函数的调用关系 调用关系先看一段代码: class Base { public ...

  8. SQL反模式学习笔记5 外键约束【不用钥匙的入口】

    目标:简化数据库架构 一些开发人员不推荐使用引用完整性约束,可能不使用外键的原因有一下几点: 1.数据更新有可能和约束冲突: 2.当前的数据库设计如此灵活,以至于不支持引用完整性约束: 3.数据库为外 ...

  9. bower 基础认识

    bower 跟 npm 很像 都是管理包的工具 只是 bower 偏向前端  npm 前后都能管理 npm init 后是  生产 package.json  下载的包在node_modules文件下 ...

  10. 20175305张天钰Java结对编程四则运算(二)

    Java结对编程四则运算(二) 一.题目描述及要求 Git提交粒度不要太粗,建议一个文件/一个类/一个函数/一个功能/一个bug修复都进行提交,不能一天提交一次,更不能一周一次,参考Commit Me ...