Acperience

Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 484    Accepted Submission(s):
258

 
Problem Description
Deep neural networks (DNN) have shown significant improvements in several application domains including computer vision and speech recognition. In computer vision, a particular type of DNN, known as Convolutional Neural Networks (CNN), have demonstrated state-of-the-art results in object recognition and detection.

Convolutional neural networks show
reliable results on object recognition and detection that are useful in real
world applications. Concurrent to the recent progress in recognition,
interesting advancements have been happening in virtual reality (VR by Oculus),
augmented reality (AR by HoloLens), and smart wearable devices. Putting these
two pieces together, we argue that it is the right time to equip smart portable
devices with the power of state-of-the-art recognition systems. However,
CNN-based recognition systems need large amounts of memory and computational
power. While they perform well on expensive, GPU-based machines, they are often
unsuitable for smaller devices like cell phones and embedded
electronics.

In order to simplify the networks, Professor Zhang tries to
introduce simple, efficient, and accurate approximations to CNNs by binarizing
the weights. Professor Zhang needs your help.

More specifically, you are
given a weighted vector W=(w1,w2,...,wn).
Professor Zhang would like to find a binary vector B=(b1,b2,...,bn) (bi∈{+1,−1})and
a scaling factor α≥0 in
such a manner that ∥W−αB∥2 is
minimum.

Note that ∥⋅∥ denotes
the Euclidean norm (i.e. ∥X∥=x21+⋯+x2n−−−−−−−−−−−√,
where X=(x1,x2,...,xn)).

 
Input
There are multiple test cases. The first line of input
contains an integer T,
indicating the number of test cases. For each test case:

The first line
contains an integers n (1≤n≤100000) --
the length of the vector. The next line contains n integers: w1,w2,...,wn (−10000≤wi≤10000).

 
Output
For each test case, output the minimum value of ∥W−αB∥2 as
an irreducible fraction "p/q"
where p, q are
integers, q>0.
 
Sample Input
3
4
1 2 3 4
4
2 2 2 2
5
5 6 2 3 4
 
Sample Output
5/1
0/1
10/1
 
Author
zimpha
 
 
题意:给定w1-wn的值,α>=0,B可以等于1或者-1,求这个的最小值。定义运算:
 

数学推论题,可以推出数学计算公式。

(w1-aB1)^2+(w2-aB2)^2+...(wn-aBn)^2

w1的取值范围是−10000≤wi≤10000,由于B1既可以取1也可以取-1,因此可以将所有的负数变为正数考虑。

因此:(|w1|-a)^2+(|w2|-a)^2+...(|wn|-a)^2(以后的w 全部为|w|,麻烦不想写)

又因为 要取最小值,显然 a=(w1+w2+...+wn)/n

展开式子 : w1^2+a^2-2aw1

       w2^2+a^2-2aw2

......

wn^2+a^2-2awn

得:(w1^2+w2^2+...+wn^2)+na^2-2a(w1+w2+...+wn)

将w1^2+w2^2+...+wn^2看作s1,w1+w2+...+wn看作s2,则:s1+na^2-2as2

且a=(w1+w2+...+wn)/n=s2/n

得 : s1+n(s2/n)^2-2(s2/n)*s2=s1+s2^2/n-2(s2^2)/n=(ns1-s2^2)/n

附上代码:

#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
#define ll long long
using namespace std; ll _gcd(ll x,ll y)
{
ll z;
if(x<y) z=x,x=y,y=z;
while(y)
{
z=x%y;
x=y;
y=z;
}
return x;
} int xabs(int x)
{
return x>?x:-x;
}
int main()
{
int T,i,j,n,m;
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
ll aa,bb,t;
ll s1=,s2=;
for(i=;i<n;i++)
{
scanf("%d",&m);
m=xabs(m);
s1+=m*m;
s2+=m;
}
aa=n*s1-s2*s2;
bb=n;
t=_gcd(aa,bb);
printf("%lld/%lld\n",aa/t,bb/t);
}
return ;
}

hdu 5734 Acperience(2016多校第二场)的更多相关文章

  1. hdu 5745 La Vie en rose(2016多校第二场)

    La Vie en rose Time Limit: 14000/7000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)T ...

  2. hdu 5742 It's All In The Mind(2016多校第二场)

    It's All In The Mind Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Oth ...

  3. hdu 5744 Keep On Movin (2016多校第二场)

    Keep On Movin Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Tot ...

  4. hdu 5308 (2015多校第二场第9题)脑洞模拟题,无语

    题目链接:http://acm.hdu.edu.cn/listproblem.php?vol=44 题意:给你n个n,如果能在n-1次运算之后(加减乘除)结果为24的输出n-1次运算的过程,如果不能输 ...

  5. hdu 5301 Buildings (2015多校第二场第2题) 简单模拟

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5301 题意:给你一个n*m的矩形,可以分成n*m个1*1的小矩形,再给你一个坐标(x,y),表示黑格子 ...

  6. 【HDU 5305】Friends 多校第二场(双向DFS)

    依据题意的话最多32条边,直接暴力的话 2 ^ 32肯定超时了.我们能够分两次搜索时间复杂度降低为 2 * 2  ^ 16 唯一须要注意的就是对眼下状态的哈希处理. 我採用的是 十进制表示法 跑的还是 ...

  7. hdu 6053: TrickGCD (2017 多校第二场 1009) 【莫比乌斯 容斥原理】

    题目链接 定义f[n]表示n是最大公约数情况下的计数,F[n]为n是公约数情况下的计数 (可以和 http://www.cnblogs.com/Just--Do--It/p/7197788.html  ...

  8. HDU 5734 Acperience(返虚入浑)

    p.MsoNormal { margin: 0pt; margin-bottom: .0001pt; text-align: justify; font-family: Calibri; font-s ...

  9. 2019牛客多校第二场 A Eddy Walker(概率推公式)

    2019牛客多校第二场 A Eddy Walker(概率推公式) 传送门:https://ac.nowcoder.com/acm/contest/882/A 题意: 给你一个长度为n的环,标号从0~n ...

随机推荐

  1. notepad++ 退出后关闭所有文档(关闭“记住最后打开的文件”)

    旧版本: 设置->首选项->其他->取消勾选Remember current session for next launch 新版本: 设置->首选项->备份->取 ...

  2. go struct 继承

  3. Floyd算法模板--详解

    对于无权的图来说: 若从一顶点到另一顶点存在着一条路径,则称该路径长度为该路径上所经过的边的数目,它等于该路径上的顶点数减1. 由于从一顶点到另一顶点可能存在着多条路径,每条路径上所经过的边数可能不同 ...

  4. SDUT-3398_数据结构实验之排序一:一趟快排

    数据结构实验之排序一:一趟快排 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 给定N个长整型范围内的整数,要求输出以给 ...

  5. Leetcode896.Monotonic Array单调数列

    如果数组是单调递增或单调递减的,那么它是单调的. 如果对于所有 i <= j,A[i] <= A[j],那么数组 A 是单调递增的. 如果对于所有 i <= j,A[i]> = ...

  6. Hdu 4497

    题目链接 已知 gcd(x, y, z) = G, lcm(x, y, z) = L, 求有多少种组合(x, y, z)可以满足条件.G, L都在32位int范围内. 思路: 素数分解 + 容斥 L ...

  7. Elasticsearch 启动需要密码?

    vagrant@homestead:~$ systemctl disable elasticsearch.service Synchronizing state of elasticsearch.se ...

  8. 安装mongoDB时,总是报错,启动不了

    安装教程地址:https://blog.csdn.net/fengtingyan/article/details/88371232 原文地址:https://blog.csdn.net/qq_2008 ...

  9. poj3463&&hdu1688 次短路(dijkstra)

    A*算法超内存. 对于最短路,我们可以维护dis[]数组,来求得最短路,但是此题有次短路,所以定义dis[][2],dis[][0]表示最短路,dis[][1]表示次短路;cnt[][2],cnt[] ...

  10. jdbc框架-dbutils的简单使用

    jdbc框架-dbutils的简单使用 dbutils:是apache组织的一个工具类,jdbc的框架,更方便我们使用 使用步骤: 1.导入jar包(commons-dbutils-1.4.jar) ...