UVa11728 Alternate Task
来源:互联网 发布:上海网络通信设备公司 编辑:程序博客网 时间:2024/05/29 13:20
1.题目描述:点击打开链接
2.解题思路:本题可以事先打表计算出所有的数的正因子之和,然后查询即可。这里的问题是,为什么这么做就是可行的。尝试算出几个因数和之后我们会发现,如果因数和相同,那么直接更新的话自然会取较大者,因此答案是正确的。
3.代码:
#include<iostream>#include<algorithm>#include<cassert>#include<string>#include<sstream>#include<set>#include<bitset>#include<vector>#include<stack>#include<map>#include<queue>#include<deque>#include<cstdlib>#include<cstdio>#include<cstring>#include<cmath>#include<ctime>#include<cctype>#include<complex>#include<functional>#pragma comment(linker, "/STACK:1024000000,1024000000")using namespace std;#define rep(i,n) for(int i=0;i<(n);i++)#define me(s) memset(s,0,sizeof(s))#define pb push_back#define lid (id<<1)#define rid (id<<1|1)typedef long long ll;typedef unsigned long long ull;typedef pair<int,int> P;ll factor(ll n){ ll sum=1; int m=(int)sqrt(n+0.5); for(int i=2;i<=m;i++) if(n%i==0) { sum+=i; if(i!=n/i)sum+=n/i; } if(n>1)sum+=n; if(sum<=1000)return sum; else return 1000+n;}const int N=2000+10;ll a[N];void init(){ memset(a,-1,sizeof(a)); for(int i=1;i<=1000;i++) a[factor(i)]=i;}int main(){ init(); int rnd=0; int n; while(~scanf("%d",&n)&&n) { printf("Case %d: %lld\n",++rnd,a[n]); }}
0 0
- UVa11728 Alternate Task
- uva11728
- UVa:11728 Alternate Task
- uva 11728 - Alternate Task(数论)
- UVa 11728 Alternate Task (逆因子和)
- UVA 11728 - Alternate Task (数论)
- uva1728 Alternate Task(因子和)
- uva 11728——Alternate Task
- UVA - 11728 Alternate Task (唯一分解定理)
- uva11728-约数的和
- alternate keys
- alternate key
- Alternate Winding
- TASK
- Task
- Task
- TASK
- task
- 天堂
- rest api
- Mars.1 Release (4.5.1)安装velocity插件Veloeclipse.ui_2.0.8
- Ajax异步同步问题,Ajax如何获取返回值
- Java New Thread start() 与 run()的区别
- UVa11728 Alternate Task
- MTK平台修改imgsensor的hal代码后快速编译
- 数据库锁
- xcode7、iOS9 设置启动图片(Launch Image)
- Linux常用命令大全
- 数组排序,并返回排序后的数组对应原数组的下标(c语言)
- 回文链表
- My97DatePicker 的简单使用
- 先来个链接,按上面的来做吧