ZOJ3827——Information Entropy

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3827

/*
输出用f
*/
/************************************************ * Author :Powatr * Created Time :2015-8-18 10:37:09 * File Name :ZOJ2827.cpp ************************************************/ #include <cstdio> #include <algorithm> #include <iostream> #include <sstream> #include <cstring> #include <cmath> #include <string> #include <vector> #include <queue> #include <deque> #include <stack> #include <list> #include <map> #include <set> #include <bitset> #include <cstdlib> #include <ctime> using namespace std; #define lson l, mid, rt << 1 #define rson mid + 1, r, rt << 1 | 1 typedef long long ll; const int MAXN = 100 + 10; const int INF = 0x3f3f3f3f; const int MOD = 1e9 + 7; int main(){ int n; char s[10]; int a[MAXN]; int T; scanf("%d", &T); while(T--){ double ans = 0.0; scanf("%d%s", &n, s); for(int i = 1; i <= n; i++) scanf("%d", &a[i]); for(int i = 1; i <= n; i++){ if(a[i] == 0) continue; double res = (double)(1.0*a[i]*(1.0*log(1.0*a[i]/100))/100); if(s[0] == 'b') res = (double)res/(1.0*log(2.0)); if(s[0] == 'd') res = (double)res/(1.0*log(10.0)); ans += res; } printf("%.10f\n", -1.0*ans); } return 0; }

  

转载于:https://www.cnblogs.com/zero-begin/p/4742672.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值