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 ...
随机推荐
- HDU1269 有向图强连通分量
题目大意:问一个有向图是否任意两点在两个方向上互相连通. 有向图强连通分量定义:如果一个图中的任意两点在两个方向上都互相连通,则该图为强连通图.极大强连通图为有向图的强连通分量(注意是极大,不是最大. ...
- oc20--继承2
// // Phone.h #import <Foundation/Foundation.h> // 被继承的这个类我们称之为父类/ 超类 @interface Phone : NSObj ...
- Linux内核OOM机制的理解【转】
本文转载自:http://blog.csdn.net/zhoutimo/article/details/52024487 What(什么是OOM): Linux下面有个特性叫OOM killer(Ou ...
- this关键字和super关键字
一.this Java中为了解决变量的命名冲突和不确定性问题,引入了关键字this.this代表当前类的一个实例,它经常出现在方法和构造方法中,具体使用情况有以下三种: 1,返回调用当前方法的对象的引 ...
- JWT和Spring Security集成
通常情况下,把API直接暴露出去是风险很大的, 我们一般需要对API划分出一定的权限级别,然后做一个用户的鉴权,依据鉴权结果给予用户对应的API (一)JWT是什么,为什么要使用它? 互联网服务离不开 ...
- arttemplate.js原生写法案例
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- ubuntu+win10双系统,调整分区大小后进入了emergency mode
问题背景: 装了Ubuntu+win10双系统,在Ubuntu下面挂载了Windows的D盘.后来因为D空间不够,进入Windows压缩C盘分区,扩大了D盘.重启后无法启动Ubuntu,进入了emer ...
- spring IOC(DI)和AOP
软件152谭智馗 IOC(Inversion of Control,控制倒转)Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制. DI—Dependency Injecti ...
- Django rest_framework API 随笔
分页 需要对数量进行限制 ./settings.py REST_FRAMEWORK = { 'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination ...
- Java 方法的应用
Java方法可以理解为C#中的函数,都是把复杂的问题简单化,按模块,按功能区分,分别完成各个部分在调用这些方法完成整个功能. 方法的综合练习,猜数字的实现: 代码要求: 生成不重复的4位数字(只有1- ...