hdu 5734 Acperience 水题
Acperience
题目连接:
http://acm.hdu.edu.cn/showproblem.php?pid=5734
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
Hint
题意
让你构造一个β向量,里面的每一维都是1或者-1
然后使得W - αβ的方差最小。
题解:
首先,我们让W中所有为负的,都变成正数,这样我们就相当于把β都当成1了,接下来就开始考虑阿尔法的问题。
把方差的平方项打开,很清楚的看见当阿尔法取平均数的时候就是最小值,这个结论也很容易猜到,所以直接莽一波就好了。
但是答案会爆longlong,所以要么你化简那个式子,要么你就高精度。
我推荐把平方项打开,然后合并就好了。
代码
#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e5+7;
long long a[maxn];
int n;
long long gcd(long long aa,long long bb){
if(bb==0)return aa;
return gcd(bb,aa%bb);
}
void solve(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%I64d",&a[i]);
if(a[i]<0)a[i]*=-1;
}
long long sum = 0,down = 0;
for(int i=1;i<=n;i++){
sum = sum + a[i];
}
long long ans1 = 0;
for(int i=1;i<=n;i++){
ans1 = ans1 + n * a[i] * a[i];
}
ans1 = ans1 - sum * sum;
long long ans2 = n;
long long g = gcd(ans1,ans2);
ans1/=g,ans2/=g;
printf("%I64d/%I64d\n",ans1,ans2);
/*
long long g = gcd(up,down);
up/=g,down/=g;
long long ans1 = a[1]*down - up;
long long ans2 = down;
g = gcd(ans1,ans2);
ans1/=g,ans2/=g;
ans1 = ans1 * ans1;
ans2 = ans2 * ans2;
for(int i=2;i<=n;i++){
long long tmp1 = a[i]*down - up;
long long tmp2 = down;
g = gcd(tmp1,tmp2);
tmp1/=g,tmp2/=g;
tmp1 = tmp1 * tmp1;
tmp2 = tmp2 * tmp2;
long long Tmp1 = ans1*tmp2+ans2*tmp1;
long long Tmp2 = tmp2*ans2;
g = gcd(Tmp1,Tmp2);
Tmp1/=g,Tmp2/=g;
ans1 = Tmp1;
ans2 = Tmp2;
}
printf("%I64d/%I64d\n",ans1,ans2);
*/
}
int main(){
int t;
scanf("%d",&t);
while(t--)solve();
return 0;
}
hdu 5734 Acperience 水题的更多相关文章
- HDU 5734 Acperience(返虚入浑)
p.MsoNormal { margin: 0pt; margin-bottom: .0001pt; text-align: justify; font-family: Calibri; font-s ...
- hdu 5210 delete 水题
Delete Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5210 D ...
- hdu 1251 (Trie水题)
统计难题 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131070/65535 K (Java/Others)Total Submi ...
- HDU 5734 Acperience (推导)
Acperience 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5734 Description Deep neural networks (DN ...
- HDU 5703 Desert 水题 找规律
已知有n个单位的水,问有几种方式把这些水喝完,每天至少喝1个单位的水,而且每天喝的水的单位为整数.看上去挺复杂要跑循环,但其实上,列举几种情况之后就会发现是找规律的题了= =都是2的n-1次方,而且这 ...
- HDU 5734 Acperience
Acperience Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total ...
- HDU 4493 Tutor 水题的收获。。
题目: http://acm.hdu.edu.cn/showproblem.php?pid=4493 题意我都不好意思说,就是求12个数的平均数... 但是之所以发博客,显然有值得发的... 这个题最 ...
- hdu 4802 GPA 水题
GPA Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=4802 Des ...
- hdu 4493 Tutor 水题
Tutor Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=4493 D ...
随机推荐
- Spring RedisTemplate操作-事务操作(9)
@Autowired @Qualifier("redisTemplate") private RedisTemplate<String, String> stringr ...
- JavaScript 中创建三种消息框:警告框、确认框、提示框。
网址:http://www.w3school.com.cn/js/js_popup.asp 警告框 警告框经常用于确保用户可以得到某些信息. 当警告框出现后,用户需要点击确定按钮才能继续进行操作. 语 ...
- LCA 算法(一)ST表
介绍一种解决最近公共祖先的在线算法,st表,它是建立在线性中的rmq问题之上. 代码: //LCA: DFS+ST(RMQ) #include<cstdio> #include&l ...
- MySQL5.6主从复制最佳实践
MySQL5.6 主从复制的配置 环境 操作系统:CentOS-6.6-x86_64 MySQL 版本:mysql-5.6.26.tar.gz 主节点 IP:192.168.31.57 ...
- Django用ajax进行post请求
post请求有两种,跨域和不跨域 1.不跨域 # 不跨域的 view.py def re_json(request): print(request.POST['name']) p1 = Product ...
- 【腾讯云】自己搭建的腾讯云服务器JavaEE环境
0.安装SSH登录 1.生成公钥对 ssh-keygen -t rsa -P '' -P表示密码,-P '' 就表示空密码,也可以不用-P参数,这样就要三车回车,用-P就一次回车.它在/home/ch ...
- 【Python】Flask系列-cookie和session笔记
cookie: 1.cookie出现的原因:在网站中,http请求是无状态的.也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户.cookie的出现就是为了 ...
- Interval Sum I && II
Given an integer array (index from 0 to n-1, where n is the size of this array), and an query list. ...
- 为你详细解读HTTP请求头的具体含意
当我们打开一个网页时,浏览器要向网站服务器发送一个HTTP请求头,然后网站服务器根据HTTP请求头的内容生成当次请求的内容发送给浏览器.你明白HTTP请求头的具体含意吗?下面一条条的为你详细解读,先看 ...
- Window8.1下oracle数据库报:ora-12170 操作超时
PLSQL 链接本机:oracle11g 服务名:orcl 一直链接不上,等了大概3分钟, 提示:ora-12170操作超时: 重启了数据库 问题还是无法解决;上网搜了一下,发现报ora-1217 ...