把涂色的格子按对称旋转至左上角。

当未涂色时,若要符合要求,则必须要求每一圈矩形都是上下左右对称的。注意是一圈的小矩形。对于N*N的阵,若最外层一圈的小矩形要符合要求,则(假设N%2==0)可以涂色的种数为K^(N/2)种。全个矩阵可涂色数为K^(N/2)*(N/2+1)/2。

接第一段,(N/2)*(N/2+1)/2即为左上角矩形的对角线以上的小矩形数。若移动后有小矩形被涂色,减去即可。

今天才做了两题。这一题的规律是在吃饭时想到的,而上一题,卡在了那个公式上。

好可怜的人啊。。。。还有一题,是组合数学,果然放弃了,不想做组合数学的题。

。。。

#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
const int Mod=100000007;
struct Paint{
int x,y;
}Ed[2050]; bool cmp(Paint a,Paint b){
if(a.x<b.x) return true;
else if(a.x==b.x){
if(a.y<b.y)return true;
}
return false;
} int quick(long long a,long long b,long long m){
long long ans=1;
while(b){
if(b&1){
ans=(ans*a)%m;
}
b>>=1;
a=(a*a)%m;
}
return (int)ans;
} int main(){
int n,m,k,pi;
while(scanf("%d%d%d",&n,&m,&k)!=EOF){
for(int i=0;i<m;i++){
scanf("%d%d",&Ed[i].x,&Ed[i].y);
Ed[i].x++; Ed[i].y++;
}
if(n%2)
n++;
pi=n/2;
pi=pi*(pi+1)/2;
int mid=n/2;
for(int i=0;i<m;i++){
if(Ed[i].x>mid) Ed[i].x=(n+1)-Ed[i].x;
if(Ed[i].y>mid) Ed[i].y=n+1-Ed[i].y;
if(Ed[i].x>Ed[i].y){
int tmp=Ed[i].y;
Ed[i].y=Ed[i].x;
Ed[i].x=tmp;
}
}
sort(Ed,Ed+m,cmp);
if(m>=1) pi--;
for(int i=1;i<m;i++){
if(Ed[i].x==Ed[i-1].x&&Ed[i].y==Ed[i-1].y)
continue;
pi--;
}
printf("%d\n",quick((long long)k,(long long)pi,(long long)Mod)%Mod);
}
return 0;
}

  

HDU 4365的更多相关文章

  1. HDU 4365——Palindrome graph——————【规律+快速幂】

    Palindrome graph Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  2. HDU 5643 King's Game 打表

    King's Game 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5643 Description In order to remember hi ...

  3. HDOJ 2111. Saving HDU 贪心 结构体排序

    Saving HDU Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  4. 【HDU 3037】Saving Beans Lucas定理模板

    http://acm.hdu.edu.cn/showproblem.php?pid=3037 Lucas定理模板. 现在才写,noip滚粗前兆QAQ #include<cstdio> #i ...

  5. hdu 4859 海岸线 Bestcoder Round 1

    http://acm.hdu.edu.cn/showproblem.php?pid=4859 题目大意: 在一个矩形周围都是海,这个矩形中有陆地,深海和浅海.浅海是可以填成陆地的. 求最多有多少条方格 ...

  6. HDU 4569 Special equations(取模)

    Special equations Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u S ...

  7. HDU 4006The kth great number(K大数 +小顶堆)

    The kth great number Time Limit:1000MS     Memory Limit:65768KB     64bit IO Format:%I64d & %I64 ...

  8. HDU 1796How many integers can you find(容斥原理)

    How many integers can you find Time Limit:5000MS     Memory Limit:32768KB     64bit IO Format:%I64d ...

  9. hdu 4481 Time travel(高斯求期望)(转)

    (转)http://blog.csdn.net/u013081425/article/details/39240021 http://acm.hdu.edu.cn/showproblem.php?pi ...

随机推荐

  1. Android笔记之网络状态推断

    1.首先当然得在 manifest 中加入检查网络状态的权限: <uses-permission android:name="android.permission.ACCESS_NET ...

  2. P1127 词链

    P1127 词链 题目描述 如果单词X的末字母与单词Y的首字母相同,则X与Y可以相连成X.Y.(注意:X.Y之间是英文的句号“.”).例如,单词dog与单词gopher,则dog与gopher可以相连 ...

  3. php中一个经典的!==的用法

    php中一个经典的!==的用法 <?php $str = 'Every time you bleed for reaching greatness.'; $cha = 'E'; if(strpo ...

  4. [Pulgin] 前端上传组件Plupload使用指南

    我之前写过一篇文章<文件上传利器SWFUpload使用指南>,里面介绍了上传组件SWFUpload的使用方法,但现在随着html5技术的逐渐推广和普及,再去使用以flash为上传手段的SW ...

  5. Eclipse 连接hsqldb数据库

    初学Java,在接触数据库根本无从下手,不知如何将程序和数据库连接起来,今天做一个记录. 数据库是:hsqldb_1_8_0_5 附链接百度云盘 链接:https://pan.baidu.com/s/ ...

  6. Bootstrap 模态框使用

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  7. Centos7 docker nginx容器搭建

    一.安装docker http://www.cnblogs.com/WJ--NET/p/8553807.html 二.创建Dockerfile #创建文件夹 mkdir centos_nginx cd ...

  8. 【Five-Minute Share】“请先了解所使用的工具 ,磨刀不误砍柴工”

    数据是应用系统的血液,没有数据的系统应用价值是非常有限的.经过多年的观察发现,身边很多的程序开发人员在开发应用系统的时候,都是按照标准SQL语法及应用方法去进行数据库设计,并进行应用开发的,没有任何的 ...

  9. otool -l 可执行文件结构

    otool -l /Users/zzf073/Desktop/FqlMerchantX /Users/zzf073/Desktop/FqlMerchantX: Mach header magic cp ...

  10. 【转】【Oracle 集群】11G RAC 知识图文详细教程之RAC在LINUX上使用NFS安装前准备(六)

    原文地址:http://www.cnblogs.com/baiboy/p/orc6.html 阅读目录 目录 介绍 下载软件 操作系统安装 Oracle安装先决条件 创建共享磁盘 参考文献 相关文章 ...