题目链接:https://vjudge.net/contest/175446#problem/J

题解:显然要用最多n个点构成的图要使的得到的最短路条数有1e9次个,显然要有几个数相乘容易想到2的几进制显然所有数都可以又2的几次方凑的于是利用一下别人的图

这就是构造方法我的稍稍有些不同我是先构造直线再构造交叉的我感觉这样简单一点

#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
typedef long long ll;
char mmp[][];
bool vis[][];
ll Po[];
int num[];
int main() {
int k;
Po[] = ;
for(int i = ; i <= ; i++) {
Po[i] = (ll) * Po[i - ];
}
for(int i = ; i <= ; i++) {
for(int j = ; j <= ; j++) {
mmp[i][j] = 'N';
}
}
memset(num , , sizeof(num));
scanf("%d" , &k);
int gg = k , cnt = ;
while(gg) {
num[cnt++] = gg % ;
gg /= ;
}
cnt--;
int gm = ;
for(int i = ; i < * cnt ; i++) {
mmp[gm][gm + ] = mmp[gm + ][gm] = 'Y';
gm++;
}
int ed = gm;
mmp[gm][] = mmp[][gm] = 'Y';
mmp[][gm + ] = mmp[gm + ][] = 'Y';
gm++;
int tm = ;
for(int i = ; i < cnt ; i++) {
tm += ;
if(num[i]) {
mmp[gm][tm] = mmp[tm][gm] = 'Y';
}
if(i == cnt - ) {
mmp[gm][gm + ] = mmp[gm][gm + ] = mmp[gm + ][gm] = mmp[gm + ][gm] = 'Y';
mmp[gm + ][ed] = mmp[gm + ][ed] = mmp[ed][gm + ] = mmp[ed][gm + ] = 'Y';
gm += ;
break;
}
mmp[gm][gm + ] = mmp[gm][gm + ] = mmp[gm + ][gm] = mmp[gm + ][gm] = 'Y';
mmp[gm + ][gm + ] = mmp[gm + ][gm + ] = mmp[gm + ][gm + ] = mmp[gm + ][gm + ] = 'Y';
gm += ;
}
if(cnt == ) {
gm = ;
mmp[][] = mmp[][] = 'Y';
mmp[][] = mmp[][] = 'N';
}
printf("%d\n" , gm);
for(int i = ; i <= gm ; i++) {
for(int j = ; j <= gm ; j++) {
putchar(mmp[i][j]);
}
puts("");
}
return ;
}

codeforces 389 D. Fox and Minimal path(构造+思维)的更多相关文章

  1. Codeforces Round #228 (Div. 1) B. Fox and Minimal path 构造

    B. Fox and Minimal path 题目连接: http://codeforces.com/contest/388/problem/B Description Fox Ciel wants ...

  2. Codeforces Round #228 (Div. 1) 388B Fox and Minimal path

    链接:http://codeforces.com/problemset/problem/388/B [题意] 给出一个整数K,构造出刚好含有K条从1到2的最短路的图. [分析] 由于是要自己构造图,当 ...

  3. codeforces 388B Fox and Minimal path

    这个题目的突破口就是固定最短长度,然后以二进制的形式分层: 最后把需要的曾连起来: #include<cstdio> #include<cstring> #define max ...

  4. CF #228 div1 B. Fox and Minimal path

    题目链接:http://codeforces.com/problemset/problem/388/B 大意是用不超过1000个点构造一张边权为1的无向图,使得点1到点2的最短路的个数为给定值k,其中 ...

  5. codeforces 1016C - Vasya And The Mushrooms 【构造 + 思维】

    题目链接:戳这里 题意:从(1,1)出发,一遍把格子走完,每个格子只能走一次.问怎么走总和最大. 解题思路:画图可知,总共就3种走法的混合. dw: 样例1的走法 up: 样例1反过来的走法 lp: ...

  6. Codeforces Round #582 (Div. 3)-G. Path Queries-并查集

    Codeforces Round #582 (Div. 3)-G. Path Queries-并查集 [Problem Description] 给你一棵树,求有多少条简单路径\((u,v)\),满足 ...

  7. Codeforces 512E - Fox And Polygon(构造)

    Codeforces 题面传送门 & 洛谷题面传送门 中规中矩的构造题一道. 首先考虑将两张图都向一个中间状态转化.方便起见我们取所有点都连向 \(1\) 号点的情形作为中间状态. 考虑怎样从 ...

  8. Codeforces Gym 100342H Problem H. Hard Test 构造题,卡迪杰斯特拉

    Problem H. Hard TestTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100342/at ...

  9. codeforces 454 E. Little Pony and Summer Sun Celebration(构造+思维)

    题目链接:http://codeforces.com/contest/454/problem/E 题意:给出n个点和m条边,要求每一个点要走指定的奇数次或者是偶数次. 构造出一种走法. 题解:可能一开 ...

随机推荐

  1. 【Spring】The matching wildcard is strict……

    applicationContext.xml 文件抛出了这个异常信息. 解决方法: 需要在 namespace 后加上对应的 schemaLocation,如下所示: <?xml version ...

  2. Vue中动态(import 、require)显示img图片

    vue中,经常会遇到显示图片的问题, 如果是一个普通组件的话,那么这样就可以了 <img src="../assets/images/avtor.jpg" width=&qu ...

  3. 【Python-Django定义用户模型类】Python-Django定义用户模型类详解!!!

    定义用户模型类 1. Django默认用户认证系统 Django自带用户认证系统 它处理用户账号.组.权限以及基于cookie的用户会话. Django认证系统位置 django.contrib.au ...

  4. Android UI绘制流程及原理

    一.绘制流程源码路径 1.Activity加载ViewRootImpl ActivityThread.handleResumeActivity() --> WindowManagerImpl.a ...

  5. spring boot 学习笔记之前言----环境搭建(如何用Eclipse配置Maven和Spring Boot)

    本篇文档来源:https://blog.csdn.net/a565649077/article/details/81042742 1.1 Eclipse准备 (1)     服务器上安装JDK和Mav ...

  6. Hadoop 系列(八)—— 基于 ZooKeeper 搭建 Hadoop 高可用集群

    一.高可用简介 Hadoop 高可用 (High Availability) 分为 HDFS 高可用和 YARN 高可用,两者的实现基本类似,但 HDFS NameNode 对数据存储及其一致性的要求 ...

  7. ibatis 核心原理解析!

    关注下方公众号,可以在公众号后台回复“博客园”,免费获得作者 Java 知识体系/面试必看资料. 最近查找一个生产问题的原因,需要深入研究 ibatis 框架的源码.虽然最后证明问题的原因与 ibat ...

  8. 对数变换(一些基本的灰度变换函数)基本原理及Python实现

    1. 基本原理 变换形式如下 $$T(r) = c\lg(r+1)$$ c为常数 由于对数函数的导数随自变量的增大而减小,对数变换将输入窄范围的低灰度值扩展为范围宽的灰度值和宽范围的高灰度值压缩为映射 ...

  9. java学习-NIO(二)Buffer

    当我们需要与 NIO Channel 进行交互时, 我们就需要使用到 NIO Buffer, 即数据从 Buffer读取到 Channel 中, 并且从 Channel 中写入到 Buffer 中.缓 ...

  10. 初识JavaScript和面向对象

    1.javascript基本数据类型: number: 数值类型 string: 字符串类型 boolean: 布尔类型 null: 空类型 undefault:未定义类型 object: 基本数据类 ...