ZOJ 3647 Gao the Grid dp,思路,格中取同一行的三点,经典 难度:3
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4837
三角形的总数=格子中任取3个点的组合数-同一横行任取3个点数目-同一纵行任取3个点数目-同一斜直线上任取3个点数目
同一横行和同一纵行都好求
同一斜行的距离最远的点必然是一个矩形的两个端点,设矩形的长宽为l,w,中间可以取的点数则是(gcd(l,w)-1),左上角或左下角的起点反而不重要.
能够取到该矩形的可能是 (n-l+1)*(m-w+1),因为左上角作为起点或左下角作为起点都可以,所以斜行的情况是sigma((gcd(l,w)-1)*(n-l+1)*(m-w+1)*2)
比赛时虽然考虑到了矩形但是没有想到让两个端点恰好成为最远的点而是分类统计,最终因为不够精细卡题
- #include <cstdio>
- #include <iostream>
- #include <cstring>
- #define clr(x,y) memset(x, y, sizeof x)
- #include <cmath>
- using namespace std;
- typedef long long LL;
- LL n, m;
- LL cal(LL x)
- {
- if (x < 3) return 0;
- return x * (x - 1) * (x - 2) / 6;
- }
- LL gcd(LL a,LL b)
- {
- if(b==0)
- return a;
- else
- return gcd(b,a%b);
- }
- int main()
- {
- while(scanf("%lld%lld", &n, &m) != EOF)
- {
- LL ans = cal((n +1) * (m + 1)) - (m + 1) * cal(n+1) - (n + 1) * cal(m + 1);
- for(int i=1;i<=n;i++)
- {
- for(int j=1;j<=m;j++)
- {
- ans-=2*(gcd(i,j)-1)*(n-i+1)*(m-j+1);
- }
- }
- printf("%lld\n", ans);
- }
- return 0;
- }
ZOJ 3647 Gao the Grid dp,思路,格中取同一行的三点,经典 难度:3的更多相关文章
- zoj 3647 Gao the Grid
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4837 先求出从所有点随机找出三个点的组合数,然后去掉共线的,平行好去掉,斜线就 ...
- Extjs的grid的单元格中加载超链接和按钮
效果: 户型图列显示的图片实际上就是一个超链接. 添加一个Button分2个步骤:1.在列头中定义超链接列或者Button列的HTML代码,也就是Render 2.添加该Button的事件处理函数.其 ...
- ZOJ 1013 Great Equipment(DP)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=13 题目大意:说的是有三种不同的装备,分别是头盔,盔甲,战靴需要运输, ...
- Codeforces 1204D2. Kirk and a Binary String (hard version) (dp思路)
题目链接:http://codeforces.com/contest/1204/problem/D2 题目是给定一个01字符串,让你尽可能多地改变1变为0,但是要保证新的字符串,对任意的L,R使得Sl ...
- zoj p3780 Paint the Grid Again
地址:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5267 题意:Leo 有一个N*N 的格子,他又有一把魔法刷,这个刷子能把 ...
- POI如何自动调整Excel单元格中字体的大小
问题 目的是要将Excel中的文字全部显示出来,可以设置对齐格式为[缩小字体填充],但是这样的话只能展示出一行数据,字体会变得很小.还有一种办法,设置对齐格式为[自动换行],然后让单元格中的字体自动调 ...
- python实例:从excel读取股票代码,爬取股票信息写到代码后面的单元格中
关键词:爬虫.python.request.接口.excel处理 思路: 1.首先准备好excel文档,把股票代码事先编辑进去. 2.脚本读取文档,依次读出股票代码到指定站点发起请求获取股票信息 3. ...
- EXCEL表格单元格中包含数字英文和汉字,如何自动去掉汉字,保留英文和数字
EXCEL表格单元格中包含数字英文和汉字,如何自动去掉汉字,保留英文和数字 Function 求数字和字母(对象 As String) '在文本与数字混杂中提取数字和字母 Dim myReg ...
- [EXCEL] 在单元格中自动输入时间和日期
选中需输入的单元格,直接按下“Ctrl+:”组合键可输入当前日期:如果直接按下“Ctrl+Shift+:”组合键即可输入当前时间:当然也可以在单元格中先输入其他文字然后再按以上组合键,如先输入“当前时 ...
随机推荐
- Win7_Wifi热点
1. 怎样在Win7系统建立并开启Wifi热点 http://jingyan.baidu.com/article/48a42057a03cf7a9242504d0.html 2.
- Android Menu菜单使用
如上图右上角,菜单选项的编辑,第一种代码实现方式如下: package com.example.menu; import android.os.Bundle; import android.app.A ...
- VB6 GDI+ 入门教程[7] Graphics 其他内容
http://vistaswx.com/blog/article/category/tutorial/page/2 VB6 GDI+ 入门教程[7] Graphics 其他内容 2009 年 9 月 ...
- 求出数组前面k个元素或数组中元素大于一半的元素(快速排序与堆排序的灵活运用)
写这个的目的在于,说明快速排序的灵活运用.我们来看下关于快速排序中的一部分关键代码: 快速排序代码: int a[101],n;//定义全局变量,这两个变量需要在子函数中使用 void quickso ...
- xcode6 AsynchronousTesting 异步任务测试
xcode集成了非常方便的测试框架,XCTest 在xcode6之后,提供了 <XCTest/XCTestCase+AsynchronousTesting.h> 利用此我们可以直接在XCT ...
- PC上安装多个操作系统
目 录 第1章 绪论 1 1.1 目标 1 1.2 适宜的读者 1 第2章 制作启动U盘 2 2.1 初级安装 2 2.2 启动分析 3 2.3 高级安装 1 ...
- ogre入门笔记
ogre作为一款开源的非商业渲染引擎, 除去效率不谈, 其设计结构十分优雅, 值得游戏从业者拥有和学习.本篇笔记基于ogre v1.9. 1.代码模块 ogre的核心代码分布如下图: ogreMain ...
- C/C++大数库简介
在网络安全技术领域中各种加密解密算法的软件实现上始终有一个共同的问题就是如何在普通的PC机上实现大数的运算.我们日常生活中所应用的PC机内部字长多是32位或64位,但是在各种加密解密的算法中为了达到一 ...
- noip赛前小结1
正是noip前夕,我的心却颇不宁静. 最近的内部测试,我的成绩非常不稳定,一会儿可以考个第一,一会儿也可以掉得很低. 总之感觉非常的焦虑. 何以解忧?唯有作文. 要有良好的生活作息. 最近考试不稳定的 ...
- 匹配session
package dl.zhang.test.util; import java.io.IOException; import java.io.Reader; import org.apache.iba ...