cf1189div2解题报告

codeforces

A

答案要不是一串要不就是去掉最后一个字母的两串

#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int N=107;
int a[N<<2],n;
int main() {
scanf("%d",&n);
int js=0;
for(int i=1;i<=n;++i) {
scanf("%1d",&a[i]);
js+=a[i];
}
if(n!=1&&js==n-js) {
printf("2\n");
for(int i=1;i<n;++i) printf("%d",a[i]);
printf(" ");
printf("%d",a[n]);
} else {
printf("1\n");
for(int i=1;i<=n;++i) printf("%d",a[i]);
}
return 0;
}

B

cf好喜欢构造呀。

\(1-3-5-7-9-10-8-6-4-2\)

这样构造应该是最优解。

然后check输出

#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int N=2e5+7;
int n,a[N],b[N];
int main() {
scanf("%d",&n);
for(int i=1;i<=n;++i) {
scanf("%d",&a[i]);
}
sort(a+1,a+1+n);
int js=0;
for(int i=1;i<=n;i+=2) b[++js]=a[i];
for(int i=(n&1)?n-1:n;i>=1;i-=2) b[++js]=a[i];
b[0]=b[n],b[n+1]=a[1];
for(int i=1;i<=n;++i)
if(b[i]>=b[i-1]+b[i+1]) return puts("NO"),0;
puts("YES");
for(int i=1;i<=n;++i)
printf("%d ",b[i]);
return 0;
}

C

虽然有很短的代码,但我还是写了线段树,好傻逼啊

#include <bits/stdc++.h>
#define ls rt<<1
#define rs rt<<1|1
using namespace std;
const int N=2e5+7;
int n,m,ans,tot[N<<2],sum[N<<2];
void build(int l,int r,int rt) {
if(l==r) {
scanf("%d",&tot[rt]);
return;
}
int mid=(l+r)>>1;
build(l,mid,ls);
build(mid+1,r,rs);
tot[rt]=(tot[ls]+tot[rs])%10;
sum[rt]=sum[ls]+sum[rs]+((tot[ls]+tot[rs])>=10);
// printf("sum[%d]=%d tot=%d\n",rt,sum[rt],tot[rt]);
}
int query(int l,int r,int L,int R,int rt) {
if(L<=l&&r<=R) {
ans+=sum[rt];
return tot[rt];
}
int mid=(l+r)>>1;
if(L<=mid&&R>mid) {
int a=query(l,mid,L,R,ls);
int b=query(mid+1,r,L,R,rs);
if(a+b>=10) ans++;
return (a+b)%10;
} else if(L<=mid) return query(l,mid,L,R,ls);
else return query(mid+1,r,L,R,rs);
}
int main() {
scanf("%d",&n);
build(1,n,1);
scanf("%d",&m);
for(int i=1,l,r;i<=m;++i) {
scanf("%d%d",&l,&r);
ans=0;
int tmp=query(1,n,l,r,1);
printf("%d\n",ans);
}
return 0;
}

D1

使得一颗树上边的权值任意,只要不出现度数为2的点就行。

#include <bits/stdc++.h>
using namespace std;
const int N=2e5+7;
int n,ru[N];
int main() {
scanf("%d",&n);
for(int i=1;i<n;++i) {
int l,r;
scanf("%d%d",&l,&r);
ru[l]++,ru[r]++;
}
for(int i=1;i<=n;++i)
if(ru[i]==2) return puts("NO"),0;
puts("YES");
return 0;
}

E

\[(a_i + a_j)(a_i^2 + a_j^2) \equiv k \bmod p
\]

\[a_i^3 + a_i^2a_j+a_ia_j^2 + a_j^3 \equiv k \bmod p
\]

左右乘\((a_i-a_j)\)

\[a_i^4 - a_j^4 \equiv ka_i-ka_j \bmod p
\]

\[a_i^4 - ka_i \equiv a_j^4-ka_j \bmod p
\]

map统计答案就行了

#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int N=3e5+7;
int n,k,p,a[N];
unordered_map<int,int> Hash;
int pow4(int a) {return 1LL*a*a%p*a%p*a%p;}
int main() {
scanf("%d%d%d",&n,&p,&k);
for(int i=1;i<=n;++i) scanf("%d",&a[i]);
ll ans=0;
for(int i=1;i<=n;++i) {
int tmp=((pow4(a[i])-1LL*k*a[i]%p)%p+p)%p;
ans+=Hash[tmp];
Hash[tmp]++;
}
cout<<ans<<"\n";
return 0;
}

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

  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. What Is HLS (HTTP Live Streaming)?

    HTTP Live Streaming  (HLS) Executive Summary HTTP Live Streaming (or HLS) is an adaptive streaming c ...

  2. java版的状态机实现

    状态机适用场景: C的操作,需要等到A.B的两个操作(A.B顺序操作),那就需要在 A.B之间创建一个状态机(state machine),C的操作需要状态机达到某一个状态才能进行 1. Overvi ...

  3. 6、VUE指令

    1.指令的格式 1.1. 指令的概念 指令是指带有v-前缀的特殊属性,指令的职责是当其表达式的值改变时,相应的将某些行为应用到DOM上. 1.2. 指令必须是html的属性 指令只能以带前缀的html ...

  4. 前端不缓存,ajax不缓存,js操作cookie

    今天实现网站注销功能时,需要清除cookie缓存,开始在网上搜索的是“js清除缓存”,发现很多都是预先防患缓存存储的内容,千篇一律,不过也学习到了:后来换成"js清除cookie" ...

  5. 用C#搭建WebSocket

    WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议. WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据.在 W ...

  6. ASP.NET Core 静态文件

    静态文件(HTML,CSS,图片和Javascript之类的资源)会被ASP.NET Core应用直接提供给客户端. 静态文件通常位于网站根目录(web root) <content-root& ...

  7. python高级编程之 web静态服务器

    返回固定数据 import socket def request_handler(new_client_socket): """ 响应客户端请求的核心函数 "& ...

  8. python可视化_matplotlib

    对于Python数据可视化库,matplotlib 已经成为事实上的数据可视化方面最主要的库,此外还有很多其他库,例如vispy,bokeh, seaborn,pyga,folium 和 networ ...

  9. mybatis + oracle,出现ORA-01461:仅能绑定要插入LONG列的LONG值

    1.这个异常是指,用户向数据库执行插入数据操作时,某条数据的某个字段值过长,如果是varchar2类型的,当长度超过2000,--4000(最大值)之间的时候,oracle会自动将该字段值转为long ...

  10. jperf windows

    jperf windows版是款简单实用的网络性能测试的工具:它也是款图形界面的iperf程序,可以这进行使用JPerf程序的时候,快速的进行简化您的命令行参数,而且这进行测试结束之后,还是以图形化的 ...