设为首页 加入收藏

TOP

uva 11246 - K-Multiple Free set(数论)
2015-07-24 05:43:00 来源: 作者: 【 】 浏览:6
Tags:uva 11246 K-Multiple Free set 数论

题目链接:uva 11246 - K-Multiple Free set

题目大意:给定n,k。求一个元素不大于n的子集,要求该子集的元素尽量多,并且不含两个数满足a?k=b.

解题思路:容斥原理,f(i)=(?1)inki,取f函数的和即可。

#include 
   
     #include 
    
      #include 
     
       using namespace std; typedef long long ll; ll solve (ll n, ll k) { ll ans = 0, sign = 1; while (n) { ans += sign * n; n /= k; sign *= -1; } return ans; } int main () { int cas; scanf("%d", &cas); while (cas--) { ll n, k; scanf("%lld%lld", &n, &k); printf("%lld\n", solve(n, k)); } return 0; }
     
    
   
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Struts1中ActionForward的技巧介绍 下一篇LeetCode――ZigZag Conversion

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: