cf1207解题报告

A

模拟

#include <bits/stdc++.h>
#define ll long long
using namespace std;
ll T,a,b,c,x,y;
int main() {
cin>>T;
while(T --> 0) {
cin>>a>>b>>c>>x>>y;
ll ans=0;
if(x>y) {
while(a>=2&&b>=1) ans+=x,a-=2,b--;
while(a>=2&&c>=1) ans+=y,a-=2,c--;
} else {
while(a>=2&&c>=1) ans+=y,a-=2,c--;
while(a>=2&&b>=1) ans+=x,a-=2,b--;
}
cout<<ans<<"\n";
}
return 0;
}

B

能选就选

#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int _=110;
int n,m,a[_][_],b[_][_];
vector<pair<int,int> > ans;
int main() {
cin>>n>>m;
for(int i=1;i<=n;++i)
for(int j=1;j<=m;++j)
cin>>a[i][j];
for(int i=1;i<n;++i) {
for(int j=1;j<m;++j) {
if(a[i][j]&&a[i+1][j]&&a[i][j+1]&&a[i+1][j+1]) {
b[i][j]=b[i+1][j]=b[i][j+1]=b[i+1][j+1]=1;
ans.push_back(make_pair(i,j));
}
}
}
for(int i=1;i<=n;++i)
for(int j=1;j<=m;++j)
if(a[i][j]!=b[i][j]) return puts("-1"),0;
printf("%d\n",(int)ans.size());
for(auto x:ans) printf("%d %d\n",x.first,x.second);
return 0;
}

C

简单dp

#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int _=1e6+7;
ll f[_][2];int s[_];
int main() {
int T,n,a,b;
scanf("%d",&T);
while(T --> 0) {
scanf("%d%d%d",&n,&a,&b);
for(int i=1;i<=n;++i) scanf("%1d",&s[i]);
memset(f,0x3f,sizeof(f));
f[1][0]=0;
for(int i=2;i<=n+1;++i) {
f[i][1]=min(f[i-1][1],f[i-1][0]+a)+b;
if(!s[i] and !s[i-1])
f[i][0]=min(f[i-1][0],f[i-1][1]+a);
}
ll ans=f[n+1][0]+1LL*n*a+1LL*(n+1)*b;
cout<<ans<<"\n";
}
return 0;
}

D

入门容斥。

\(n!-bad_a-bad_b+bad_a&&bad_b\)

#include <bits/stdc++.h>
#define ll long long
using namespace std;
const ll _=6e5+7,mod=998244353;
ll read() {
ll x=0,f=1;char s=getchar();
for(;s>'9'||s<'0';s=getchar()) if(s=='-') f=-1;
for(;s>='0'&&s<='9';s=getchar()) x=x*10+s-'0';
return x*f;
}
ll n,jc[_];
struct node {ll a,b;}c[_];
bool operator == (node x,node y) {
return x.a==y.a&&x.b==y.b;
}
bool cmp1(node x,node y) {
return x.a==y.a?x.b<y.b:x.a<y.a;
}
bool cmp2(node x,node y) {
return x.b==y.b?x.a<y.a:x.b<y.b;
}
int main() {
n=read();
jc[0]=jc[1]=1;for(ll i=2;i<=n;++i) jc[i]=jc[i-1]*i%mod;
for(ll i=1;i<=n;++i) c[i].a=read(),c[i].b=read();
ll bad1=1,bad2=1;
sort(c+1,c+1+n,cmp1);
for(ll l=1,r;l<=n;) {
r=l;while(c[l].a==c[r+1].a&&r+1<=n) r++;
bad1*=jc[r-l+1],bad1%=mod;
l=r+1;
}
sort(c+1,c+1+n,cmp2);
for(ll l=1,r;l<=n;) {
r=l;while(c[l].b==c[r+1].b&&r+1<=n) r++;
bad2*=jc[r-l+1],bad2%=mod;
l=r+1;
}
ll ans=jc[n]-bad1-bad2;
ans=(ans%mod+mod)%mod;
for(ll i=2;i<=n;++i)
if(c[i-1].a>c[i].a)
return cout<<ans<<"\n",0;
ll good=1;
for(ll l=1,r;l<=n;) {
r=l;while(c[l]==c[r+1]&&r+1<=n) r++;
good*=jc[r-l+1],good%=mod;
l=r+1;
}
ans+=good;
ans=(ans%mod+mod)%mod;
cout<<ans<<"\n";
return 0;
}

E

两次确定x的前7位和后七位。

#include <bits/stdc++.h>
using namespace std;
int tmp,ans;
int main() {
printf("? ");
for(int i=1;i<=100;++i) printf("%d ",i);
printf("\n");
fflush(stdout);
scanf("%d",&tmp);
for(int i=7;i<14;++i) if(tmp&(1<<i)) ans|=1<<i;
printf("? ");
for(int i=1;i<=100;++i) printf("%d ",i<<7);
printf("\n");
fflush(stdout);
scanf("%d",&tmp);
for(int i=0;i<7;++i) if(tmp&(1<<i)) ans|=1<<i;
cout<<"! "<<ans<<"\n";
return 0;
}

F

分块。

又读错范围了,开了\(long long T\)飞了.

预处理sum[i][j]\(表示\)%i\(余\)j\(的和。
对于模数大于\)\sqrt{n}$的直接暴力跳。

#include <bits/stdc++.h>
#define int long long
#define ll long long
using namespace std;
int read() {
int x=0,f=1;char s=getchar();
for(;s>'9'||s<'0';s=getchar()) if(s=='-') f=-1;
for(;s>='0'&&s<='9';s=getchar()) x=x*10+s-'0';
return x*f;
}
const int _=5e5+7;
ll n,sum[1000][1000],a[_];
signed main() {
n=read();
int dsr=sqrt(500000);
while(n --> 0) {
int opt=read(),x=read(),y=read();
if(opt==1) {
a[x]+=y;
for(int i=1;i<=dsr;++i) sum[i][x%i]+=y;
} else {//%x=y
if(x>dsr) {
int ans=0;
for(int i=y;i<=500000;i+=x) ans+=a[i];
cout<<ans<<"\n";
} else {
cout<<sum[x][y]<<"\n";
}
}
}
return 0;
}

cf1207解题报告的更多相关文章

  1. CH Round #56 - 国庆节欢乐赛解题报告

    最近CH上的比赛很多,在此会全部写出解题报告,与大家交流一下解题方法与技巧. T1 魔幻森林 描述 Cortana来到了一片魔幻森林,这片森林可以被视作一个N*M的矩阵,矩阵中的每个位置上都长着一棵树 ...

  2. 二模13day1解题报告

    二模13day1解题报告 T1.发射站(station) N个发射站,每个发射站有高度hi,发射信号强度vi,每个发射站的信号只会被左和右第一个比他高的收到.现在求收到信号最强的发射站. 我用了时间复 ...

  3. BZOJ 1051 最受欢迎的牛 解题报告

    题目直接摆在这里! 1051: [HAOI2006]受欢迎的牛 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 4438  Solved: 2353[S ...

  4. 习题:codevs 2822 爱在心中 解题报告

    这次的解题报告是有关tarjan算法的一道思维量比较大的题目(真的是原创文章,希望管理员不要再把文章移出首页). 这道题蒟蒻以前做过,但是今天由于要复习tarjan算法,于是就看到codevs分类强联 ...

  5. 习题:codevs 1035 火车停留解题报告

    本蒟蒻又来写解题报告了.这次的题目是codevs 1035 火车停留. 题目大意就是给m个火车的到达时间.停留时间和车载货物的价值,车站有n个车道,而火车停留一次车站就会从车载货物价值中获得1%的利润 ...

  6. 习题: codevs 2492 上帝造题的七分钟2 解题报告

    这道题是受到大犇MagHSK的启发我才得以想出来的,蒟蒻觉得自己的代码跟MagHSK大犇的代码完全比不上,所以这里蒟蒻就套用了MagHSK大犇的代码(大家可以关注下我的博客,友情链接就是大犇MagHS ...

  7. 习题:codevs 1519 过路费 解题报告

    今天拿了这道题目练练手,感觉自己代码能力又增强了不少: 我的思路跟别人可能不一样. 首先我们很容易就能看出,我们需要的边就是最小生成树算法kruskal算法求出来的边,其余的边都可以删掉,于是就有了这 ...

  8. NOIP2016提高组解题报告

    NOIP2016提高组解题报告 更正:NOIP day1 T2天天爱跑步 解题思路见代码. NOIP2016代码整合

  9. LeetCode 解题报告索引

    最近在准备找工作的算法题,刷刷LeetCode,以下是我的解题报告索引,每一题几乎都有详细的说明,供各位码农参考.根据我自己做的进度持续更新中......                        ...

随机推荐

  1. 在macOS苹果电脑上安装Azure DevOps Server(TFS)代理

    1. 概述 MacOS是一套运行于苹果Macintosh系列电脑上的操作系统,是首个在商用领域成功的图形用户界面操作系统.Iphone应用软件的开发人员,都使用运行macOS的电脑或mini盒子进行软 ...

  2. Jupyter Notebook使用

    不论你是刚开始学 Python,还是正在啃数据分析的骨头,对你来说,不断在各种命令行窗口和编辑器里切来切去,或者不断打开各种窗口查看 matplotlib 的输出之类的繁琐操作,一定是家常便饭了.哎呀 ...

  3. python I/O多路复用 使用http完成http请求

    1. 使用类实现比较方便我们使用里面的参数 2. 我们使用selector,不适用select from selectors import DefaultSelector 3. I/O多路复用是指使用 ...

  4. sitecore 如何创建一个渠道分类

    您可以通过渠道跟踪联系人与您的品牌的所有互动.您可以将渠道与广告系列活动相关联,以便跟踪联系人与您的品牌互动的方式.通过比较各个渠道的目标转化率,您可以了解哪些渠道可以带来更好的联系参与度.您可以在体 ...

  5. VM1059 bootstrap-table.min.js:7 Uncaught TypeError: Cannot read property 'classes' of undefined

    参考链接:https://blog.csdn.net/liuqianspq/article/details/81868283 1.阳光明媚的下午,我在写CRUD,让数据传到前端的时候,解析的时候报错了 ...

  6. AI与数学笔记之深入浅出的讲解傅里叶变换(真正的通俗易懂)

    原文出处: 韩昊    # 作 者:韩 昊 # 知 乎:Heinrich # 微 博:@花生油工人 # 知乎专栏:与时间无关的故事 # 谨以此文献给大连海事大学的吴楠老师,柳晓鸣老师,王新年老师以及张 ...

  7. 刨树根,抓住redis 进行七连问

    追着 redis 进行七连问 Hello Redis 有几个问题想请教你 Hello,Redis! 我们相处已经很多年了,从模糊的认识到现在我们已经深入结合,你的好我一直都知道也一直都记住,能否在让我 ...

  8. java基本程序设计结构总结

    学习一门语言:(1)掌握它的表现形式(2)这些语言什么应用. 1.1关键字 1.关键字是被赋予了特殊含义的单词. 2.关键字特点:关键字所有字母都小写. 3.类名的每一个单词开头必须大写. 1.2标识 ...

  9. 【spring】自定义注解 custom annotation

    自定义注解 custom annotation 使用场景 类属性自动赋值. 验证对象属性完整性. 代替配置文件功能,像spring基于注解的配置. 可以生成文档,像java代码注释中的@see,@pa ...

  10. mvc 返回json格式时间格式化

    protected override JsonResult Json(object data, string contentType, System.Text.Encoding contentEnco ...