博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
noip 模拟赛 After 17(递推+特殊的技巧)
阅读量:6758 次
发布时间:2019-06-26

本文共 1738 字,大约阅读时间需要 5 分钟。

来源:Violet_II T1

好神的一题,我竟然没做出来QAQ

首先我们发现,答案是sigma(x[i]*x[j], i>j)+sigma(y[i]*y[j], i>j)。显然只需要讨论左边的就行了,右边就可以同理了。

我们发现sigma(x[i]*x[j], i>j)=(sigma(x[i])^2-sigma(x[i]^2))/2,减号后边和除以2显然是常数也就是说确定了x[i]也就确定了值。但是x[i]的值有哪些可以取呢?我们发现在sigma(x[i]*x[j], i>j)中,因为x[j]的取值与x[i]无关,所以对于x[i],假定所有i>j都确定了,那么也就是x[i]*sigma(x[j]),所以这是一个一次函数,我们对他取极值就行了。那么x[i]的值我们确定了,就是给定数据的x[i]或-x[i]。

那么问题转化为求最小的|sigma(x[i])|,注意这是绝对值。

我们考虑像背包那样,d[i][j]表示前i个物体,体积为j是否能被取到,那么

d[i][j+a[i]]=1 当 d[i-1][j]=1

d[i][j-a[i]]=1 当 d[i-1][j]=1

初始化 d[0][0]=1

那么就行了。。。。

好神。。

#include 
#include
#include
#include
#include
#include
#include
typedef long long ll;#define read(x) x=getint()#define dbg(x) cout << (#x) << " = " << x << endl#define rep(i, n) for(int i=0; i<(n); ++i)#define for1(i, a, n) for(int i=(a); i<=(n); ++i)#define for2(i, a, n) for(int i=(a); i<(n); ++i)#define for3(i, a, n) for(int i=(a); i>=(n); --i)#define for4(i, a, n) for(int i=(a); i>(n); --i)#define CC(a, n) memset(a, n, sizeof(a))using namespace std;inline const ll getint() { ll r=0, k=1; char ch=getchar(); for(; ch<'0'||ch>'9'; ch=getchar()) if(ch=='-') k=-1; for(; ch>='0'&&ch<='9'; ch=getchar()) r=r*10+ch-'0'; return r*k; }inline const int max(const int &a, const int &b) { return a>b?a:b; }inline const int min(const int &a, const int &b) { return a
>1; for1(i, S, S+sum) if(d[pos][i]) { mn=min(mn, i-S); break; } for3(i, S, S-sum) if(d[pos][i]) { mn=min(mn, S-i); break; } return mn*mn;}int main() { read(n); for1(i, 1, n) read(x[i]), read(y[i]); for1(i, 1, n) ans-=x[i]*x[i]; for1(i, 1, n) ans-=y[i]*y[i]; ans+=dp(x); ans+=dp(y); printf("%.2lf\n", (double)ans/(double)2); return 0;}

  

 


 

 

 

转载地址:http://qegho.baihongyu.com/

你可能感兴趣的文章
正则表达式测试器
查看>>
innobackupex 部分表恢复
查看>>
兼容IE,Firefox,CSS3 opacity透明度
查看>>
读取Hive中所有表的表结构,并在新Hive库中创建表,索引等
查看>>
XenServer部署系列之02——系统安装及许可
查看>>
linux下FTP服务器搭建
查看>>
XenServer pool 移除server 设置master
查看>>
python调用不同目录下的方法
查看>>
程序的查询 ps - 笔记1
查看>>
Conversion to Dalvik format failed with error 1的又一种情形
查看>>
nodejs抓取数据二(列表解析)
查看>>
TextView中实现可点击链接的显示
查看>>
HAOI 树上操作
查看>>
深刻理解Python中的元类(metaclass)以及元类实现单例模式
查看>>
java随机生成n个不相同的整数
查看>>
DIV+CSS基础
查看>>
使用JS完成首页定时弹出广告图片
查看>>
codeforces 500c New Year Book Reading 【思维】
查看>>
Auto reloading enabled
查看>>
GitHub的使用方法
查看>>