2021-4-1 多校省选模拟赛

文章目录

  • 考试复盘
  • nmd

考试复盘

T1T1T1

我可太喜欢这种不要脑子的莽试题了!!

考场上猜的结论d>3d>3d>3无解

d=1,d=2d=1,d=2d=1,d=2的填法也试出来了

d=3d=3d=3只试出来了n,mn,mn,m333的倍数的填法

但是另外的情况就GGGGGG

最后交上去竟然还敲挂了(ˉ▽ˉ;)…乌鸡鲅鱼

这道题应该是这一段考试以来唯几接近整正解的题目了

思考的:大讨论,猜结论

T2T2T2

发现了很多小性质,想到了与根号有关的因子上面去

但是,呃emmmmmm~~

我不知道这个集合应该怎么填

所以找到的那些小性质并没有什么卵用

(和善的微笑

思考的:质数/因子有关的各种算法,DPDPDP

T3T3T3

考场上敲得暴力——又挂了w(゚Д゚)waz

链想的树形DPDPDP但是也没打,没想明白

看到无环的部分分也想不出做法

思考的:tarjantarjantarjan强连通,树形DPDPDP,暴力,后缀数组(纯粹是看到了字符串比较

nmd

在这里插入图片描述在这里插入图片描述

大讨论好哇b( ̄▽ ̄)d

  • n,m,dn,m,dn,m,d都是奇数

    −1-11

  • d>3d>3d>3

    −1-11

    在考场上肯定是猜的结论,就是反复试啊,就是连不出来

    (1,1)(1,1)(1,1)先开始满足,要往外连>3>3>3条线,肯定跨越了一个小正方格

    感性理解都感觉最后几行会有点被困住连不出去

  • d=1d=1d=1

    • 点数为奇数

      −1-11

    • 点数为偶数

      相邻两个连边即可

  • d=2d=2d=2

    • 点数为奇数
      在这里插入图片描述
    • 点数为偶数
      在这里插入图片描述
  • d=3d=3d=3

    • n=3n=3n=3

      • m=4m=4m=4

        −1-11

      • m=6m=6m=6
        在这里插入图片描述

      • otherwiseotherwiseotherwise

        排除掉两边的对称,中间一定是偶数列,两两配对即可
        在这里插入图片描述

    • n,mn,mn,m为偶数
      在这里插入图片描述

    • otherwiseotherwiseotherwise

      • m=5m=5m=5
        在这里插入图片描述
      • otherwiseotherwiseotherwise
        在这里插入图片描述

代码虽然有三百多行,7K大,但是是非常不动脑子的莽敲,请不要感到害怕,ㄟ(▔=▔)ㄏ

#include <cstdio>
#include <iostream>
using namespace std;
int T, n, m, d;
bool flag;void print( int x1, int y1, int x2, int y2 ) {if( flag ) printf( "%d %d %d %d\n", y1, x1, y2, x2 );else printf( "%d %d %d %d\n", x1, y1, x2, y2 );
}void subtask1() {printf( "%d\n", ( n * m ) >> 1 );if( n & 1 ) swap( n, m ), flag = 1;for( int i = 1;i <= n;i ++ )for( int j = 1;j <= m;j ++ )if( i & 1 )print( i, j, i + 1, j );
}void subtask2() {printf( "%d\n", ( n * m * d ) >> 1 );if( ( n & 1 ) && ( m & 1 ) ) {//redprint( 1, 1, 2, 2 );print( n, 1, n, 2 );//yellowfor( int i = 1;i < n;i ++ )print( i, 1, i + 1, 1 );//bluefor( int i = 3;i <= n;i ++ )for( int j = 2;j < m;j ++ )print( i, j, i, j + 1 );//greenfor( int i = 3;i <= n;i ++ )if( ( n - i + 1 ) & 1 )print( i, m, i - 1, m );elseprint( i, 2, i - 1, 2 );//pinkfor( int i = 2;i <= m;i ++ )print( 1, i, 2, i ); //orangefor( int i = 2;i < m;i ++ )if( i & 1 )print( 2, i, 2, i + 1 );elseprint( 1, i, 1, i + 1 );} else {if( n & 1 ) swap( n, m ), flag = 1;//redprint( 1, 1, 1, 2 );print( n, 1, n, 2 );//yellowfor( int i = 1;i < n;i ++ )print( i, 1, i + 1, 1 );//bluefor( int i = 1;i <= n;i ++ )for( int j = 2;j < m;j ++ )print( i, j, i, j + 1 );//greenfor( int i = 1;i < n;i ++ )if( i & 1 )print( i, m, i + 1, m );elseprint( i, 2, i + 1, 2 ); }
}void subtask3_0() {if( n != 3 ) swap( n, m ), flag = 1;if( m == 4 ) {printf( "-1\n" );return;}printf( "%d\n", ( n * m * d ) >> 1 );//red	print( 1, 1, 2, 1 );print( 2, 1, 3, 1 );print( 1, m, 2, m );print( 2, m, 3, m );for( int i = 1;i < m;i ++ )print( 1, i, 1, i + 1 ), print( 3, i, 3, i + 1 );if( m == 6 ) {print( 1, 1, 2, 2 );print( 2, 1, 2, 2 );print( 3, 1, 2, 2 );print( 1, 2, 2, 3 );print( 3, 2, 2, 3 );print( 3, 3, 2, 3 );print( 1, 6, 2, 5 );print( 2, 6, 2, 5 );print( 3, 6, 2, 5 );print( 1, 5, 2, 4 );print( 1, 4, 2, 4 );print( 3, 5, 2, 4 );print( 1, 3, 3, 4 );}else {//yellowprint( 1, 1, 2, 2 );print( 2, 1, 2, 2 );print( 3, 1, 2, 2 );print( 1, 2, 2, 3 );print( 1, 3, 2, 3 );print( 3, 2, 2, 3 );print( 1, 4, 2, 4 );print( 3, 3, 2, 4 );print( 3, 4, 2, 4 );//greenfor( int i = 5;i <= m - 4;i ++ )print( 1, i, 2, i ), print( 2, i, 3, i );//pinkfor( int i = 5;i <= m - 4;i ++ )if( i & 1 )print( 2, i, 2, i + 1 );//blueprint( 1, m, 2, m - 1 );print( 2, m, 2, m - 1 );print( 3, m, 2, m - 1 );print( 1, m - 1, 2, m - 2 );print( 1, m - 2, 2, m - 2 );print( 3, m - 1, 2, m - 2 );print( 1, m - 3, 2, m - 3 );print( 3, m - 3, 2, m - 3 );print( 3, m - 2, 2, m - 3 );}
}void subtask3_1() {printf( "%d\n", ( n * m * d ) >> 1 );if( ! ( n & 1 ) && ! ( m & 1 ) ) {//redprint( 1, 1, 2, 2 );print( 1, m, 2, m - 1 );//yellowfor( int i = 1;i < m;i ++ )print( 1, i, 1, i + 1 );//greenfor( int i = 1;i <= m;i ++ )print( 1, i, 2, i );//bluefor( int i = 1;i <= m;i ++ )if( i & 1 )print( 2, i, 2, i + 1 );for( int i = 2;i <= n - 2;i ++ ) {//pinkprint( i, 1, i + 1, 1 );print( i, m, i + 1, m );if( i & 1 ) {//greyprint( i, 2, i + 1, 2 );print( i, m - 1, i + 1, m - 1 );//orangefor( int j = 1;j < m;j ++ )print( i, j, i, j + 1 );//purplefor( int j = 1;j < m;j ++ )print( i + 1, j, i + 1, j + 1 );}else {//blackfor( int j = 3;j <= m - 2;j ++ )print( i, j, i + 1, j );}}//redprint( n, 1, n - 1, 2 );print( n, m, n - 1, m - 1 );//yellowfor( int i = 1;i < m;i ++ )print( n, i, n, i + 1 );//greenfor( int i = 1;i <= m;i ++ )print( n, i, n - 1, i );//bluefor( int i = 1;i <= m;i ++ )if( i & 1 )print( n - 1, i, n - 1, i + 1 );}else {if( n & 1 ) swap( n, m ), flag = 1;if( m == 5 ) {//redprint( 1, 1, 2, 2 );print( 1, 1, 2, 1 );print( 2, 1, 2, 2 );print( 1, 2, 2, 3 );print( 1, 3, 2, 3 );print( 1, m, 2, m - 1 );//yellowfor( int i = 1;i < m;i ++ )print( 1, i, 1, i + 1 );//greenfor( int i = 4;i <= m;i ++ )print( 1, i, 2, i );//bluefor( int i = 4;i <= m;i ++ )if( ! ( i & 1 ) )print( 2, i, 2, i + 1 );for( int i = 2;i <= n - 2;i ++ ) {//pinkprint( i, 1, i + 1, 1 );print( i, m, i + 1, m );if( i & 1 ) {//greyprint( i, m - 1, i + 1, m - 1 );//orangefor( int j = 1;j < m;j ++ )print( i, j, i, j + 1 );//purplefor( int j = 1;j < m;j ++ )print( i + 1, j, i + 1, j + 1 );}else {//blackfor( int j = 2;j <= m - 2;j ++ )print( i, j, i + 1, j );}}//redprint( n, 1, n - 1, 1 );print( n, 1, n - 1, 2 );print( n - 1, 1, n - 1, 2 );print( n, 2, n - 1, 3 );print( n, 3, n - 1, 3 );print( n, m, n - 1, m - 1 );//yellowfor( int i = 1;i < m;i ++ )print( n, i, n, i + 1 );//greenfor( int i = 4;i <= m;i ++ )print( n, i, n - 1, i );//bluefor( int i = 4;i <= m;i ++ )if( ! ( i & 1 ) )print( n - 1, i, n - 1, i + 1 );}else {//redprint( 1, 1, 2, 2 );print( 2, 1, 2, 2 );print( 2, 3, 2, 4 );print( 1, m, 2, m - 1 );//yellowfor( int i = 1;i < m;i ++ )print( 1, i, 1, i + 1 );//greenfor( int i = 1;i <= m;i ++ )print( 1, i, 2, i );//bluefor( int i = 4;i <= m;i ++ )if( ! ( i & 1 ) )print( 2, i, 2, i + 1 );for( int i = 2;i <= n - 2;i ++ ) {//pinkprint( i, 1, i + 1, 1 );print( i, m, i + 1, m );if( i & 1 ) {//greyprint( i, 2, i + 1, 2 );print( i, 4, i + 1, 4 );print( i, m - 1, i + 1, m - 1 );//orangefor( int j = 1;j < m;j ++ )print( i, j, i, j + 1 );//purplefor( int j = 1;j < m;j ++ )print( i + 1, j, i + 1, j + 1 );}else {//blackprint( i, 3, i + 1, 3 );for( int j = 5;j <= m - 2;j ++ )print( i, j, i + 1 , j);}}//redprint( n, 1, n - 1, 2 );print( n - 1, 1, n - 1, 2 );print( n - 1, 3, n - 1, 4 );print( n, m, n - 1, m - 1 );//yellowfor( int i = 1;i < m;i ++ )print( n, i, n, i + 1 );//greenfor( int i = 1;i <= m;i ++ )print( n, i, n - 1, i );//bluefor( int i = 4;i <= m;i ++ )if( ! ( i & 1 ) )print( n - 1, i, n - 1, i + 1 );}}
}int main() {freopen( "nmd.in", "r", stdin );freopen( "nmd.out", "w", stdout );scanf( "%d", &T );while( T -- ) {scanf( "%d %d %d", &n, &m, &d );if( ( d > 3 ) || ( ( d & 1 ) && ( n & 1 ) && ( m & 1 ) ) )printf( "-1\n" );else if( d == 1 )subtask1();else if( n == 1 || m == 1 )printf( "-1\n" );else if( d == 2 )subtask2();else if( n == 2 || m == 2 )printf( "-1\n" );else if( n == 3 || m == 3 )subtask3_0();elsesubtask3_1();flag = 0;}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/317481.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Reactive Extensions 相见恨晚的Rx.Net

何为Reactive Extensions&#xff08;Rx&#xff09;Rx是一个遵循函数式编程的类库&#xff0c;它引用观察者以及迭代器设计模式对可观察对象产生的数据进行异步消费。使用Rx&#xff0c;开发人员将使用LINQ运算符操作异步数据流&#xff0c;并使用调度程序参数化异步数据流中的…

AcWing 1303. 斐波那契前 n 项和

AcWing 1303. 斐波那契前 n 项和 题意: 题解&#xff1a; 这个题解分析的太到位了 代码&#xff1a; #include<iostream> #include<cstring>#define ll long longusing namespace std;const int N3;int n,m; ll f1[N][N]{{1,1,1}}; ll A[N][N]{{0,1,0},{1,1,1…

2021-4-4 省选模拟赛(灯,十字路口,密室逃脱)

文章目录考试复盘A&#xff1a;灯(light)B&#xff1a;十字路口(crossing)C&#xff1a;密室逃脱(escape)考试复盘 第一题分块虽然明显&#xff0c;但是说实话自己没怎么做过分块的题 就不会做大块的处理。。。(;_) 今天听H老说分块可以成替代数据结构的骗分暴力对拍神器 这么…

张高兴的 .NET Core IoT 入门指南:(二)GPIO 的使用

什么是 GPIOGPIO 是 General Purpose Input Output 的缩写&#xff0c;即“通用输入输出”。 Raspberry Pi 有两行 GPIO 引脚&#xff0c; Raspberry Pi 通过这两行引脚进行一些硬件上的扩展&#xff0c;与传感器进行交互等等。Raspberry Pi B/2B/3B/3B/Zero 引脚图简单的讲&am…

acwing1304. 佳佳的斐波那契

1304. 佳佳的斐波那契 题意&#xff1a; S(n)表示Fibonacci的前n项和mod m T(n)(F12F23F3…nFn)mod m 给n和m&#xff0c;求T(n) 题解&#xff1a; 矩阵快速幂 参考题解 关键在于构造矩阵相乘的形式 代码&#xff1a; #include<bits/stdc.h> #define debug(a,b) pri…

1305. GT考试

1305. GT考试 题意&#xff1a; 准考证长度为n位&#xff0c;不吉利数字有m位&#xff0c;问不出现不吉利数字的准考证有多少种&#xff0c;答案mod K 题解&#xff1a; 动态规划kmp矩阵快速幂 设dp[i][j]表示长度为i&#xff0c;且不包含S串&#xff0c;且末尾部分与S串的…

.NET Core IdentityServer4实战 第二章-OpenID Connect添加用户认证

内容&#xff1a;本文带大家使用IdentityServer4进行使用OpenID Connect添加用户认证作者&#xff1a;zara(张子浩) 欢迎分享&#xff0c;但需在文章鲜明处留下原文地址。在这一篇文章中我们希望使用OpenID Connect这种方式来验证我们的MVC程序&#xff08;需要有IdentityServe…

[CF/AT]各大网站网赛 体验部部长第一季度工作报告

文章目录CodeForces#712 (Div. 1)——1503A. Balance the BitsB. 3-ColoringC. Travelling Salesman ProblemD. Flip the Cards108 (Rated for Div. 2)——1519A. Red and Blue BeansB. The Cake Is a LieC. Berland RegionalD. Maximum Sum of ProductsE. Off by OneCodeforce…

G - Tiling FZU - 2040(未解决)

G - Tiling FZU - 2040 题意&#xff1a; m * n的矩阵&#xff0c;通过任意大小的矩阵&#xff0c;有多少种填充方式&#xff1f; 图片为3 * 2的矩阵有如下填充方式&#xff1a; 题解&#xff1a; 矩阵快速幂 目前还没参透 代码:

I - The Mad Mathematician FZU - 2042(未解决)

I - The Mad Mathematician FZU - 2042 题意&#xff1a; 给你一段伪代码&#xff1a;如图 现在给你A&#xff0c;B&#xff0c;C&#xff0c;D&#xff0c;E&#xff0c;的具体值&#xff0c;问你sum是多少 0<A,B,C,D,E<263-1 题解&#xff1a; 数位dp&#xff1f;…

程序员修仙之路--高性能排序多个文件

点击上方蓝色字体&#xff0c;关注我们菜菜呀&#xff0c;昨天晚上班级空间崩溃了程序员主力 Y总what&#xff1f;菜菜我看服务器上写了很多个日志文件&#xff0c;我看着太费劲了&#xff0c;能不能按照日期排序整合成一个文件呀&#xff1f;程序员主力 Y总Y总要查日志呀&…

【.NET Core项目实战-统一认证平台】第十四章 授权篇-自定义授权方式

上篇文章我介绍了如何强制令牌过期的实现&#xff0c;相信大家对IdentityServer4的验证流程有了更深的了解&#xff0c;本篇我将介绍如何使用自定义的授权方式集成老的业务系统验证&#xff0c;然后根据不同的客户端使用不同的认证方式来集成到统一认证平台。.netcore项目实战交…

D - Covering HDU - 6185(未解决完)

D - Covering HDU - 6185 题意&#xff1a; 4 * n的地板&#xff0c;有无数个1 * 2 和2 * 1 的砖块&#xff0c;问有多少方式填满&#xff1f; 1≤n≤10^18 题解&#xff1a; 矩阵快速幂 代码&#xff1a;

.NET-记一次架构优化实战与方案-前端优化

前言上一篇《.NET-记一次架构优化实战与方案-梳理篇》整理了基本的业务知识&#xff0c;同时也罗列了存在的问题&#xff0c;本篇主要是针对任务列表的页面进行性能优化。该篇主要涉及的是代码实现上的优化&#xff0c;实现上的问题是战术债务&#xff0c;也就是我们平常出现的…

GDOI2022游记

文章目录Day -1Day 0Day 1Day 2Day 3()Day ?~?Day ?Day -1 考前好像写题状态不太好&#xff08;可能是纯粹的懒&#xff09;。 开始写板子&#xff0c;很多算法都很久没碰了&#xff0c;有的调了很久才过。树剖都调了一个多小时&#xff0c;身败名裂。不过想想省选应该不怎…

.NET-记一次架构优化实战与方案-梳理篇

前言程序员输出是他敲写的代码&#xff0c;那么输入就是他思考好的设计。因此不做设计是不存在&#xff0c;设计只分优秀的设计和糟糕的设计。为了避免过度设计浪费成本&#xff0c;需要针对现有业务与问题进行展开。业务梳理是不可避免的。优化是无止尽&#xff0c;为了更有成…

.NET Core 3.0 中的数据库驱动框架 System.Data

虽然没有得到很多关注&#xff0c;但System.Data对于.NET 中任何关系型数据库的访问都至关重要。因为其前身是 ActiveX Data Objects&#xff0c;所以它也被称为 ADO.NET。System.Data 提供了一个通用框架&#xff0c;是构建.NET 数据库驱动程序的基础。该框架提供了数据库驱动…

Matrix Problem

Matrix Problem 题意&#xff1a; 给你一个n * m的二维数据c&#xff0c;c的每个元素值为0或1 现在要求你构造同样大小的数组a和b&#xff0c;要求c[i][j] 1’的话&#xff0c;a[i][j] b[i][j] ‘1’&#xff0c;如果c[i][j] ‘0’.a[i][j]!b[i][j]&#xff0c;且a和b中的1…

ASP.NET Core 实战:基于 Jwt Token 的权限控制全揭露

一、前言在涉及到后端项目的开发中&#xff0c;如何实现对于用户权限的管控是需要我们首先考虑的&#xff0c;在实际开发过程中&#xff0c;我们可能会运用一些已经成熟的解决方案帮助我们实现这一功能&#xff0c;而在 Grapefruit.VuCore 这个项目中&#xff0c;我将使用 Jwt …

[2021-06-19] 提高组新手副本Ⅱ(联网,欧几里得,分解树,开关灯)

文章目录考试心路历程联网titlesolutioncode欧几里得titlesolutioncode分解树titlesolutioncode开关灯titlesolutioncode考试心路历程 佛了佛了&#xff0c;caocaocaocaocaocao 人直接炸嗨升天 并查集直接送走200200200分&#xff01;&#xff01;&#xff01;我屮艸芔茻 T1二…