HDU 4365
把涂色的格子按对称旋转至左上角。
当未涂色时,若要符合要求,则必须要求每一圈矩形都是上下左右对称的。注意是一圈的小矩形。对于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的更多相关文章
- HDU 4365——Palindrome graph——————【规律+快速幂】
Palindrome graph Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- HDU 5643 King's Game 打表
King's Game 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5643 Description In order to remember hi ...
- HDOJ 2111. Saving HDU 贪心 结构体排序
Saving HDU Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- 【HDU 3037】Saving Beans Lucas定理模板
http://acm.hdu.edu.cn/showproblem.php?pid=3037 Lucas定理模板. 现在才写,noip滚粗前兆QAQ #include<cstdio> #i ...
- hdu 4859 海岸线 Bestcoder Round 1
http://acm.hdu.edu.cn/showproblem.php?pid=4859 题目大意: 在一个矩形周围都是海,这个矩形中有陆地,深海和浅海.浅海是可以填成陆地的. 求最多有多少条方格 ...
- HDU 4569 Special equations(取模)
Special equations Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u S ...
- HDU 4006The kth great number(K大数 +小顶堆)
The kth great number Time Limit:1000MS Memory Limit:65768KB 64bit IO Format:%I64d & %I64 ...
- HDU 1796How many integers can you find(容斥原理)
How many integers can you find Time Limit:5000MS Memory Limit:32768KB 64bit IO Format:%I64d ...
- hdu 4481 Time travel(高斯求期望)(转)
(转)http://blog.csdn.net/u013081425/article/details/39240021 http://acm.hdu.edu.cn/showproblem.php?pi ...
随机推荐
- python 读取二进制文件 转为16进制输出
示例: #!/usr/bin/env python #encoding: utf-8 import binascii fh = open(r'C:\Temp\img\2012517165556.png ...
- 使用filezella服务器安装ftp
使用FileZilla配置FTP站点,可参考以下步骤: 1.打开Filezilla Server服务端: 点击[Edit]->[Users],或者点击如下图标新增用户. 2.添加FTP帐号后,设 ...
- Python环境设置-zlib not available
今天在Linux中安Python3的时候,出现了一个错误:zipimport.ZipImportError: can‘t decompress data; zlib not available 网上找 ...
- Mysql数据类型(二)
字符类型 #官网:https://dev.mysql.com/doc/refman/5.7/en/char.html #注意:char和varchar括号内的参数指的都是字符的长度 #char类型:定 ...
- [lua]异步串行流程*协程
local function param_pack( params, callback ) table.insert(params, callback) return params end local ...
- arttemplate.js原生写法案例
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- equal height
https://css-tricks.com/the-perfect-fluid-width-layout/ http://nicolasgallagher.com/multiple-backgrou ...
- **PCL:嵌入VTK/QT显示(Code^_^)
中国人真是太不知道分享了,看看这个老外的博客,启发性链接. http://www.pcl-users.org/ 1. 这个是可用的源代码: 原文:I saw a thread with links t ...
- AI:从游戏引擎--到AI
原文链接:http://blog.csdn.net/left_la/article/details/6358911#t9 这是我在Gameres上看到的一篇文章,文章很长,全文分为11个部分,看后感觉 ...
- Sublime + Chrome 本地调试 CSS 选择器
生成简单的 HTML 代码 使用MacDown写 Markdown,快捷键ALT+CMD+C拷贝成 HTML 代码 粘贴到 Sublime 中,加上 body 标签和 css 头 html <h ...