赛时心态崩了,0pts遗憾离场……今天在学校冷静思考了下。发现B题思路其实很简单,不过A题怎么也没有想到,回来看了题解,其实思路也很简单,不过是自己思考方向错了。看来打比赛心态很重要,如果能冷静下来思考结果会好很多。

果然算法竞赛不能被常理所束缚(笑)

A - 01 Matrix Again

行列从\(0\)开始,以\((i+j)\ mod\ n\)的值给每个格子编号,就像这样:



我们发现任选其中\(m\)种编号的位置填上\(1\),得到的矩阵一定满足条件。那么具体在哪些编号上填\(1\)呢?

  • 首先,输入给定的格子所在的编号一定要填。
  • 其次,只按照第\(1\)条,可能凑不够\(m\)种,这种情况,就要在输入给定的格子编号中任意挑选若干个,能凑成\(m\)种编号就行。

赛后一直思考这道题没有头绪是因为我的方向错了。当时我一直纠结于行和列的规律,却没有想到斜向考虑会如此简单。

点击查看代码
#include<bits/stdc++.h>
using namespace std;
int n,m;
int main(){
cin>>n>>m;
vector<bool> vis(n);
for(int i=1;i<=m;i++){
int x,y;
cin>>x>>y;
x--,y--;
vis[(x+y)%n]=1;
}
vector<int> ans;
for(int i=0;i<n;i++) if(vis[i]) ans.push_back(i);
for(int i=0;i<n;i++) if(!vis[i]&&ans.size()<m) ans.push_back(i);
cout<<n*m<<endl;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
int x=i,y=(ans[j]-i+n)%n;
cout<<x+1<<" "<<y+1<<endl;
}
}
return 0;
}

B - Simple Math 4

显然的结论:

\(2^N\ mod\ (2^M-2^K)=2^{N-M+K}\ mod\ (2^M-2^K)\)。

所以循环直到\(N<M\)即可。这一步骤可以通过除法在\(O(1)\)的时间复杂度下解决。

接下来答案就是\(2^N\ mod\ 10\),根据\(N\ mod\ 4\)的结果有\(4\)种答案:\(2,4,8,6\),同样是\(O(1)\)。

但是需要注意的是得特判一种情况:n==m-1&&m-k==1。这意味着原式等于\(2^N\ mod\ 2^{M-1}\)。而\(N=M-1\),所以这种情况需要输出\(0\)。

点击查看代码
#include<bits/stdc++.h>
#define int long long
using namespace std;
int t,n,m,k;
int mo[4]={6,2,4,8};
signed main(){
cin>>t;
while(t--){
cin>>n>>m>>k;
if(n>=m) n-=((n-m)/(m-k)+1)*(m-k);
if(m-k==1&&n==m-1) cout<<"0\n";
else cout<<mo[n%4]<<"\n";
}
return 0;
}

[题解]ARC176 A~B的更多相关文章

  1. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

  2. noip2016十连测题解

    以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...

  3. BZOJ-2561-最小生成树 题解(最小割)

    2561: 最小生成树(题解) Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1628  Solved: 786 传送门:http://www.lyd ...

  4. Codeforces Round #353 (Div. 2) ABCDE 题解 python

    Problems     # Name     A Infinite Sequence standard input/output 1 s, 256 MB    x3509 B Restoring P ...

  5. 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解

    题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...

  6. 2016ACM青岛区域赛题解

    A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Jav ...

  7. poj1399 hoj1037 Direct Visibility 题解 (宽搜)

    http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...

  8. 网络流n题 题解

    学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...

  9. CF100965C题解..

    求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...

  10. JSOI2016R3 瞎BB题解

    题意请看absi大爷的blog http://absi2011.is-programmer.com/posts/200920.html http://absi2011.is-programmer.co ...

随机推荐

  1. Ubuntu部署tensorflow(CPU/GPU)方法

      本文介绍在Linux操作系统的发行版本Ubuntu中,配置可以用CPU或GPU运行的Python新版本深度学习库tensorflow的方法.   在文章部署CPU与GPU通用的tensorflow ...

  2. 布局控件:Grid和StackPanel

    布局控件:Grid和StackPanel 本文同时为b站WPF课程的笔记,相关示例代码 一个窗口顶上的部分叫做非客户区,下面的部分叫做客户区域.非客户区域主要就是一个Title和三个窗口样式按钮.我们 ...

  3. Android studio虚拟机黑屏

    1.冷启动 cold boot now 2.新建一个 另外今天下午起来的比较晚,就在宿舍上的机,然后效果就比较差,我有罪,我下次要学习一定不在宿舍,今晚也是早早的吃了饭就来自习了,这就是成果.卡了我一 ...

  4. Java IO<2> 输入/输出流 FileInputStream/FileOutputStream

    输入/输出流 按操作 数据单位不同分为:流 字节流(8 bit) ,字符流(16 bit) 按数据流的 流向不同分为: 输入流,输出流 按流的 角色的不同分为:节点流,处理流 ![image-2 ...

  5. C++服务开发环境-万事开头难

    C++服务开发环境-万事开头难 对于开发人员来说,仅仅学习编程语言的语法是不够的,还需要学习这门编程语言对应的构建流程,不然写出来的代码怎么变成程序运行起来呢? 出生较晚的编程语言,如golang.p ...

  6. 那些年拿过的shell之adminer

    扫敏感文件扫到一个adminer 第三次遇到了,先看版本4.2.5比较低可以利用mysql服务端读客户端文件漏洞(高版本修复了). 通过报错得到这个站是linux.虚拟主机.thinkphp3.绝对路 ...

  7. Blazor学习之旅(5)数据绑定

    大家好,我是Edison. 本篇,我们来了解下在Blazor中数据是如何绑定的. 关于数据绑定 如果希望 HTML 元素显示值,可以编写代码来更改显示内容.如果值发生更改,则需要编写额外的代码以更新显 ...

  8. SQL Server 重复记录,查询,筛查,指定保留

    Select * From 表 x Where 重复字段 In (Select 重复字段 From 表 Group By 重复字段 Having Count(*)>1) Order BY 重复字 ...

  9. 解决了AI聊天的10个痛点后,我又做了一个新功能:交叉分析表

    前言 不久前,我写了一篇长文,吐槽了当前 Web 和桌面端 AI 聊天工具的 10 个体验问题.从"找不到几周前绝妙点子"的全局检索缺失,到"置顶所有等于没置顶" ...

  10. wordpress - 上传附件大小更改

    我用的是树莓派4b,需要修改php.ini的路径是/etc/php/7.3/apache2/php.ini.根据安装的php版本来决定所在的路径. 让然了,也可以 sudo find / -name ...