zoj 3672 思考题
http://acm.zju.edu.cn/onlinejudge/showProblem.do?
problemId=4915
真是老了。脑子不会动了,可是事实上就算如今搜了题解A了,还是没总结出思维方式
三点:
1、segma(a[i]-b[i])必须是偶数。。由于事实上每次操作都是相当于从segma(a[i]-b[i])里面减去2*delta
2、a[i]>=b[i] 题目说的非常清楚,仅仅能减去。所以这点必须满足
前两点都想到了。可是自己能举出反例,后来队友A掉了
3、max(a[i]-b[i]) * 2 <= segma(a[i]-b[i]) 否则的话。最大的肯定消不掉
可是事实上还是没有总结出思维方法,我一直做的都是。自己从小的样例枚举,找方法,然后推广至大的。可是好像不行这次
可能须要从反例里面多总结规律。然后假设自己反例都想出来都能应对。应该就对了
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <string>
#include <iostream>
#include <iomanip>
#include <cmath>
#include <map>
#include <set>
#include <queue>
using namespace std; #define ls(rt) rt*2
#define rs(rt) rt*2+1
#define ll long long
#define ull unsigned long long
#define rep(i,s,e) for(int i=s;i<e;i++)
#define repe(i,s,e) for(int i=s;i<=e;i++)
#define CL(a,b) memset(a,b,sizeof(a))
#define IN(s) freopen(s,"r",stdin)
#define OUT(s) freopen(s,"w",stdout)
const ll ll_INF = ((ull)(-1))>>1;
const double EPS = 1e-8;
const int INF = 100000000; const int MAXN = 10000+100;
ll a[MAXN],b[MAXN];
ll vis[MAXN];
int n; int main()
{
while(~scanf("%d",&n))
{
CL(vis,0);
int flag=1;
ll mmax=0,ret=0;
for(int i=0;i<n;i++)
{
scanf("%lld%lld",&a[i],&b[i]);
if(a[i]<b[i])flag=0;
if(a[i]>=b[i])vis[i]=a[i]-b[i];
mmax=max(vis[i],mmax);
ret+=vis[i];
}
if(flag==0 || 2*mmax >ret || ret%2)
printf("NO\n");
else
printf("YES\n"); }
return 0;
}
zoj 3672 思考题的更多相关文章
- zoj 3672 Gao The Sequence
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4915题意:a[k]-一个任意的数,这个数要等于a[1]~a[k]每个数减去任意 ...
- ZOJ Monthly, November 2012
A.ZOJ 3666 Alice and Bob 组合博弈,SG函数应用 #include<vector> #include<cstdio> #include<cstri ...
- ZOJ People Counting
第十三届浙江省大学生程序设计竞赛 I 题, 一道模拟题. ZOJ 3944http://www.icpc.moe/onlinejudge/showProblem.do?problemCode=394 ...
- ZOJ 3686 A Simple Tree Problem
A Simple Tree Problem Time Limit: 3 Seconds Memory Limit: 65536 KB Given a rooted tree, each no ...
- ZOJ Problem Set - 1394 Polar Explorer
这道题目还是简单的,但是自己WA了好几次,总结下: 1.对输入的总结,加上上次ZOJ Problem Set - 1334 Basically Speaking ac代码及总结这道题目的总结 题目要求 ...
- ZOJ Problem Set - 1392 The Hardest Problem Ever
放了一个长长的暑假,可能是这辈子最后一个这么长的暑假了吧,呵呵...今天来实验室了,先找了zoj上面简单的题目练练手直接贴代码了,不解释,就是一道简单的密文转换问题: #include <std ...
- ZOJ Problem Set - 1049 I Think I Need a Houseboat
这道题目说白了是一道平面几何的数学问题,重在理解题目的意思: 题目说,弗雷德想买地盖房养老,但是土地每年会被密西西比河淹掉一部分,而且经调查是以半圆形的方式淹没的,每年淹没50平方英里,以初始水岸线为 ...
- ZOJ Problem Set - 1006 Do the Untwist
今天在ZOJ上做了道很简单的题目是关于加密解密问题的,此题的关键点就在于求余的逆运算: 比如假设都是正整数 A=(B-C)%D 则 B - C = D*n + A 其中 A < D 移项 B = ...
- ZOJ Problem Set - 1001 A + B Problem
ZOJ ACM题集,编译环境VC6.0 #include <stdio.h> int main() { int a,b; while(scanf("%d%d",& ...
随机推荐
- http://blog.sina.com.cn/s/blog_7caae74b0100zl17.html
http://blog.sina.com.cn/s/blog_7caae74b0100zl17.html
- Codeforces Burning Midnight Oil
/* * BurningMidnightOil.cpp * * Created on: 2013-10-12 * Author: wangzhu */ /** * 每次至少写多少行代码ret: * 1 ...
- [jobdu]孩子们的游戏(圆圈中最后剩下的数)
这道题就是典型的约瑟夫环问题.http://blog.csdn.net/wuzhekai1985/article/details/6628491 一开始想了一下用数组来做,就是模拟方法,同时记录一下是 ...
- 知识总结: Activity的四种启动模式
通常情况下,一个应用有一个Task,这个Task就是为了完成某个工作的一系列Activity的集合.而这些Activity又被组织成了堆栈的形式.当一个Activity启动时,就会把它压入该Task的 ...
- Android ExpandableListView使用+获取SIM卡状态信息
ExpandableListView 是一个可以实现下拉列表的控件,大家可能都用过QQ,QQ中的好友列表就是用ExpandableListView实现的,不过它是自定义的适配器.本篇 博客除了要介绍E ...
- input checkbox问题和li里面包含checkbox
<input type="checkbox" id="checkbox1"/> $("input#checkbox1").cli ...
- .net析构函数对垃圾回收的影响简析
这里说析构函数,其实并不准确,应该叫Finalize函数,Finalize函数形式上和c++的析构函数很像 ,都是(~ClassName)的形式,但是功能上完全不一样.析构函数编译成il语言后会变成一 ...
- 函数page_rec_get_next_const
/************************************************************//** Gets the pointer to the next recor ...
- bzoj1007
其实吧,就是一个半平面交,而且不用考虑转回来的情况,所以只要极角排序然后用栈即可给的是点斜式,比极角很方便至于完整版的半平面交还没写过,看到再说吧 ..] of longint; v:..] of b ...
- 转自 Good morning 的几句精辟的话
1.志愿者招募 根据流量平衡方程来构图非常方便,而且简单易懂,以后可能成为做网络流的神法之一 简单记一下流量平衡方程构图法的步骤: a.列出需求不等式 b.通过设置松弛变量,将不等式变成等式 c.两两 ...