A 素数分布

解法:暴力枚举

#include<iostream>
#include<cstring>
#include<cstdio>
#include<queue>
#include<cstdlib>
#include<cmath>
#include<stack>
#include<map>
#include<string>
#include<vector>
#include<set>
#include<bitset>
#include<algorithm>
#include<ctime>
using namespace std;
#define ll long long
#define lb long double
#define INF 0x3f3f3f3f
#define LINF 0x3f3f3f3f3f3f3f3f
#define ull unsigned long long
#define endl '\n'
#define clr(a, b) memset(a, b, sizeof(a))
#define lowbit(x) x & -x
#define lson rt << 1, l, mid
#define rson rt << 1 | 1, mid + 1, r
#define PB push_back
#define POP pop_back
#define max_ll 9223372036854775807
#define PII pair<int, int>
#define random(x) (rand()%x)
//srand((ll)time(0));
//freopen("E://one.txt","r",stdin); //输入重定向,输入数据将从in.txt文件中读取
//freopen("E://oneout.txt","w",stdout); //输出重定向,输出数据将保存在out.txt文件中
//std::ios::sync_with_stdio(false);
const double eps = 1e-14;
const double pi = acos(-1);
const int maxn = 1e6 + 100;//30000000
const int maxm = 2e5 + 10;
const ll mod = 1e9 + 7;
const int hash_mod = 19260817;
const int inf = 2147483647;
int  T;
bool f(int x){if(x == 1) return false;for(int i = 2 ; i * i <= x ; ++ i){if(x % i == 0) return false;}return true;
}
int main()
{scanf("%d", &T);while(T --){int n;scanf("%d", &n);int cnt = 0;for(int i = 2 ; i <= n ; ++ i){if(f(i)) cnt ++;}cout << cnt << endl;}return 0;
}

B 食物分配

解法:只有最小加次小等于次大等于最大才成立

#include<iostream>
#include<cstring>
#include<cstdio>
#include<queue>
#include<cstdlib>
#include<cmath>
#include<stack>
#include<map>
#include<string>
#include<vector>
#include<set>
#include<bitset>
#include<algorithm>
#include<ctime>
using namespace std;
#define ll long long
#define lb long double
#define INF 0x3f3f3f3f
#define LINF 0x3f3f3f3f3f3f3f3f
#define ull unsigned long long
#define endl '\n'
#define clr(a, b) memset(a, b, sizeof(a))
#define lowbit(x) x & -x
#define lson rt << 1, l, mid
#define rson rt << 1 | 1, mid + 1, r
#define PB push_back
#define POP pop_back
#define max_ll 9223372036854775807
#define PII pair<int, int>
#define random(x) (rand()%x)
//srand((ll)time(0));
//freopen("E://one.txt","r",stdin); //输入重定向,输入数据将从in.txt文件中读取
//freopen("E://oneout.txt","w",stdout); //输出重定向,输出数据将保存在out.txt文件中
//std::ios::sync_with_stdio(false);
const double eps = 1e-14;
const double pi = acos(-1);
const int maxn = 1e6 + 100;//30000000
const int maxm = 2e5 + 10;
const ll mod = 1e9 + 7;
const int hash_mod = 19260817;
const int inf = 2147483647;
int  T;
int a[10];
int main()
{scanf("%d", &T);while(T --){int sum = 0;for(int i = 1 ; i <= 4 ; ++ i) scanf("%d", &a[i]), sum += a[i];sort(a+1,a+1+4);if(sum%3!=0) cout << "-1" << endl;else{if(a[1]+a[2] == a[3] && a[3] == a[4]) cout << a[3] << endl;else cout << "-1" << endl;}}return 0;
}

C AHUICPC (Easy Version)

解法:特殊构造n=10的情况,其他情况只需在末尾加n个C即可

#include<iostream>
#include<cstring>
#include<cstdio>
#include<queue>
#include<cstdlib>
#include<cmath>
#include<stack>
#include<map>
#include<string>
#include<vector>
#include<set>
#include<bitset>
#include<algorithm>
#include<ctime>
using namespace std;
#define ll long long
#define lb long double
#define INF 0x3f3f3f3f
#define LINF 0x3f3f3f3f3f3f3f3f
#define ull unsigned long long
#define endl '\n'
#define clr(a, b) memset(a, b, sizeof(a))
#define lowbit(x) x & -x
#define lson rt << 1, l, mid
#define rson rt << 1 | 1, mid + 1, r
#define PB push_back
#define POP pop_back
#define max_ll 9223372036854775807
#define PII pair<int, int>
#define random(x) (rand()%x)
//srand((ll)time(0));
//freopen("E://one.txt","r",stdin); //输入重定向,输入数据将从in.txt文件中读取
//freopen("E://oneout.txt","w",stdout); //输出重定向,输出数据将保存在out.txt文件中
//std::ios::sync_with_stdio(false);
const double eps = 1e-14;
const double pi = acos(-1);
const int maxn = 1e6 + 100;//30000000
const int maxm = 2e5 + 10;
const ll mod = 1e9 + 7;
const int hash_mod = 19260817;
const int inf = 2147483647;
int  T, n;int main()
{scanf("%d", &n);if(n <= 9){printf("AHUICP");for(int i = 1 ; i <= n ; ++ i) cout << "C";}else{printf("AHUICCPCCCCC");}return 0;
}

D 不定方程

蜜汁题意,就是两个不互素输出-1(题意太鬼畜了),否则输出两数之积

#include<iostream>
#include<cstring>
#include<cstdio>
#include<queue>
#include<cstdlib>
#include<cmath>
#include<stack>
#include<map>
#include<string>
#include<vector>
#include<set>
#include<bitset>
#include<algorithm>
#include<ctime>
using namespace std;
#define ll long long
#define lb long double
#define INF 0x3f3f3f3f
#define LINF 0x3f3f3f3f3f3f3f3f
#define ull unsigned long long
#define endl '\n'
#define clr(a, b) memset(a, b, sizeof(a))
#define lowbit(x) x & -x
#define lson rt << 1, l, mid
#define rson rt << 1 | 1, mid + 1, r
#define PB push_back
#define POP pop_back
#define max_ll 9223372036854775807
#define PII pair<int, int>
#define random(x) (rand()%x)
//srand((ll)time(0));
//freopen("E://one.txt","r",stdin); //输入重定向,输入数据将从in.txt文件中读取
//freopen("E://oneout.txt","w",stdout); //输出重定向,输出数据将保存在out.txt文件中
//std::ios::sync_with_stdio(false);
const double eps = 1e-14;
const double pi = acos(-1);
const int maxn = 1e6 + 100;//30000000
const int maxm = 2e5 + 10;
const ll mod = 1e9 + 7;
const int hash_mod = 19260817;
const int inf = 2147483647;
int  T, n;
ll x, y;
int main()
{scanf("%d", &T);while(T --){scanf("%lld %lld", &x, &y);ll gcd = __gcd(x, y);x = x/gcd; y = y/gcd;if(gcd != 1) cout << "-1" << endl;else cout << y << ' ' << x << ' ' << y * x * gcd << endl;}return 0;
}

E 蕊蕊识数

解法:答案只会有2或3的情况,判完2之后若不满足直接输出3.(ps:能被3整除的经过题中操作永远都能被3整除,不能的永远不能,因为被3整除的充要条件为各位数和能被3整除)

#include<iostream>
#include<cstring>
#include<cstdio>
#include<queue>
#include<cstdlib>
#include<cmath>
#include<stack>
#include<map>
#include<string>
#include<vector>
#include<set>
#include<bitset>
#include<algorithm>
#include<ctime>
using namespace std;
#define ll long long
#define lb long double
#define INF 0x3f3f3f3f
#define LINF 0x3f3f3f3f3f3f3f3f
#define ull unsigned long long
#define endl '\n'
#define clr(a, b) memset(a, b, sizeof(a))
#define lowbit(x) x & -x
#define lson rt << 1, l, mid
#define rson rt << 1 | 1, mid + 1, r
#define PB push_back
#define POP pop_back
#define max_ll 9223372036854775807
#define PII pair<int, int>
#define random(x) (rand()%x)
//srand((ll)time(0));
//freopen("E://one.txt","r",stdin); //输入重定向,输入数据将从in.txt文件中读取
//freopen("E://oneout.txt","w",stdout); //输出重定向,输出数据将保存在out.txt文件中
//std::ios::sync_with_stdio(false);
const double eps = 1e-14;
const double pi = acos(-1);
const int maxn = 1e6 + 100;//30000000
const int maxm = 2e5 + 10;
const ll mod = 1e9 + 7;
const int hash_mod = 19260817;
const int inf = 2147483647;
int T;
char s[maxn];
int cal(int x){int ans = 0;while(x){ans += x % 10;x /= 10;}return ans;
}
int main()
{scanf("%d", &T);while(T --){scanf("%s", s);int n = strlen(s);int sum = 0;for(int i = 0 ; i < n ; ++ i){sum += s[i] - '0';}if((s[n-1]-'0')%2 == 0){while(sum % 2 == 0){sum = cal(sum);if(sum < 10) break;}if(sum / 10 == 0 && sum % 2 == 0) cout << "2" << endl;else cout << "3" << endl;}else{while(sum % 2 != 0){sum = cal(sum);if(sum < 10) break;}if(sum / 10 == 0 && sum % 2 != 0) cout << "2" << endl;else cout << "3" << endl;}}return 0;
}

F 蕊蕊乘车去上学

解法:对于无穷长的位置,点落在a的概率是a/(a+b),所以a的期望是a×a/(a+b),因为从a上车一定是a个人,b的情况和a也差不多所以最后是(a×a+b×b)/(a+b)

#include<iostream>
#include<cstring>
#include<cstdio>
#include<queue>
#include<cstdlib>
#include<cmath>
#include<stack>
#include<map>
#include<string>
#include<vector>
#include<set>
#include<bitset>
#include<algorithm>
#include<ctime>
using namespace std;
#define ll long long
#define lb long double
#define INF 0x3f3f3f3f
#define LINF 0x3f3f3f3f3f3f3f3f
#define ull unsigned long long
#define endl '\n'
#define clr(a, b) memset(a, b, sizeof(a))
#define lowbit(x) x & -x
#define lson rt << 1, l, mid
#define rson rt << 1 | 1, mid + 1, r
#define PB push_back
#define POP pop_back
#define max_ll 9223372036854775807
#define PII pair<int, int>
#define random(x) (rand()%x)
//srand((ll)time(0));
//freopen("E://one.txt","r",stdin); //输入重定向,输入数据将从in.txt文件中读取
//freopen("E://oneout.txt","w",stdout); //输出重定向,输出数据将保存在out.txt文件中
//std::ios::sync_with_stdio(false);
const double eps = 1e-14;
const double pi = acos(-1);
const int maxn = 1e6 + 100;//30000000
const int maxm = 2e5 + 10;
const ll mod = 1e9 + 7;
const int hash_mod = 19260817;
const int inf = 2147483647;
ll n;
double a, b;
int main()
{scanf("%lf %lf", &a, &b);printf("%.2lf", (a*a+b*b)/(a+b));return 0;
}

G AHUICPC (Hard Version)

解法:考虑对于原来的串前面每次加一个AH会多出(AH的数量,这里可以手推一下),那么增长级别是(i+1)*i/2,先找到i最大的i使得(i+1)*i/2<n,那么多出来的部分k只要在对应的第k个AH再加一个A即可。

#include<iostream>
#include<cstring>
#include<cstdio>
#include<queue>
#include<cstdlib>
#include<cmath>
#include<stack>
#include<map>
#include<string>
#include<vector>
#include<set>
#include<bitset>
#include<algorithm>
#include<ctime>
using namespace std;
#define ll long long
#define lb long double
#define INF 0x3f3f3f3f
#define LINF 0x3f3f3f3f3f3f3f3f
#define ull unsigned long long
#define endl '\n'
#define clr(a, b) memset(a, b, sizeof(a))
#define lowbit(x) x & -x
#define lson rt << 1, l, mid
#define rson rt << 1 | 1, mid + 1, r
#define PB push_back
#define POP pop_back
#define max_ll 9223372036854775807
#define PII pair<int, int>
#define random(x) (rand()%x)
//srand((ll)time(0));
//freopen("E://one.txt","r",stdin); //输入重定向,输入数据将从in.txt文件中读取
//freopen("E://oneout.txt","w",stdout); //输出重定向,输出数据将保存在out.txt文件中
//std::ios::sync_with_stdio(false);
const double eps = 1e-14;
const double pi = acos(-1);
const int maxn = 1e6 + 100;//30000000
const int maxm = 2e5 + 10;
const ll mod = 1e9 + 7;
const int hash_mod = 19260817;
const int inf = 2147483647;
int n;
int main()
{scanf("%d", &n);int t = 1;if(n == 1) printf("AHUICPC");else{int t = 1;for(int i = 1 ; ; ++ i){if((i+1) * i / 2 > n){t = i - 1;break;}}int k = n-(t+1)*t/2;for(int i = 1 ; i <= t ; ++ i){if(i == t-k+1){cout << "AA";cout << "H";}else cout << "AH";}cout << "UICPC" << endl;}return 0;
}

H 无尽大军

解法:答案为能被分解的素因子之和。因为比如考虑60(60=223*5),倒推在30花费2变成60, 在15花2变30, 在5的时候(先把5变10, 再把10变15), 对于5(素数)只能从1 2 3 4 5上来。所以答案是2+2+3+5 = 12;

#include<iostream>
#include<cstring>
#include<cstdio>
#include<queue>
#include<cstdlib>
#include<cmath>
#include<stack>
#include<map>
#include<string>
#include<vector>
#include<set>
#include<bitset>
#include<algorithm>
#include<ctime>
using namespace std;
#define ll long long
#define lb long double
#define INF 0x3f3f3f3f
#define LINF 0x3f3f3f3f3f3f3f3f
#define ull unsigned long long
#define endl '\n'
#define clr(a, b) memset(a, b, sizeof(a))
#define lowbit(x) x & -x
#define lson rt << 1, l, mid
#define rson rt << 1 | 1, mid + 1, r
#define PB push_back
#define POP pop_back
#define max_ll 9223372036854775807
#define PII pair<int, int>
#define random(x) (rand()%x)
//srand((ll)time(0));
//freopen("E://one.txt","r",stdin); //输入重定向,输入数据将从in.txt文件中读取
//freopen("E://oneout.txt","w",stdout); //输出重定向,输出数据将保存在out.txt文件中
//std::ios::sync_with_stdio(false);
const double eps = 1e-14;
const double pi = acos(-1);
const int maxn = 1e6 + 100;//30000000
const int maxm = 2e5 + 10;
const ll mod = 1e9 + 7;
const int hash_mod = 19260817;
const int inf = 2147483647;
ll n;
int main()
{scanf("%lld", &n);int cnt = 0;ll p = 1e9;int flag = 0;ll ans = 0;for(ll i = 2 ; i * i <= n ; ++ i){while(n % i == 0){ans += i;n /= i;}}if(n > 1) cout << n + ans;else cout << ans;return 0;
}

2019年安徽大学ACM/ICPC实验室新生赛(公开赛)相关推荐

  1. 2019年安徽大学ACM/ICPC实验室新生赛题解

    本文仅作个人收藏学习使用 题目及解析来源牛客竞赛网 //作者:王清楚 //链接:https://ac.nowcoder.com/discuss/351408?type=101&order=0& ...

  2. 2019年安徽大学ACM/ICPC实验室新生赛

    题目链接 A.素数分布函数\pi (n)π(n)表示小于或等于n的素数的数目.例如\pi (10)=4π(10)=4(2,3,5,7是素数).这个函数涉及到许多高等数论的内容,甚至和黎曼猜想挂钩,目前 ...

  3. 2019 ACM - ICPC 上海网络赛 E. Counting Sequences II (指数型生成函数)

    繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量题解和代码,题目难度不一定按照题号排序,我会在每道题后面加上题目难度指数(1∼51 \sim 51∼5),以模板题难度 11 ...

  4. 2018年 ACM/ICPC亚洲区域赛 青岛赛区现场赛 比赛总结

    首先祝贺自己收获了ACM生涯中的第二枚铜牌. 首先吐槽一下中石油: 周六早上来到中国石油大学,连个志愿者小姐姐都没看到.(但是看到了女装大佬).报完到之后发现教练少了一张午餐券(要不要这么粗心).为了 ...

  5. 第43届ACM icpc亚洲区域赛焦作站感想

    青岛痛失银牌,焦作又是铜牌一枚,现在想想,前面三个水题,我的原因太大了,老是犯各种zz小错误,明明能秒,却花了大量时间debug,导致三个小时才签完到,最后一个小时,F题的bfs没出来,B题也没出来, ...

  6. 2016 年 ACM/ICPC 青岛区域赛 Problem C Pocky

    昨晚乱入学弟的训练赛,想了一下这个题.推导的过程中,加深了对公理化的概率论理解.$\newcommand{\d}{\mathop{}\!\mathrm{d}}$ 解法一 考虑 $ d < L$ ...

  7. 2011 ACM/ICPC 北京现场赛 B HouYi's secret

    周日起床后看见QQ群消息说 bupt上有半同步北京现场赛试题,就进入看了下题,一共读了两个题 A和B(因为这两个题目当时就都提交的很多) A题不会做,有限制的生成树的这类知识好像还没有接触过... B ...

  8. HDU - 5875 2016 ACM/ICPC 大连网络赛 H题 暴力

    题目链接 题意:给你一个区间l,r一直将val[l]模上val[l+1],val[l+2]...val[r],因为一个模上比前一个数小数是没有意义的,所以需要将每一个点找到右边第一个小于他的点就行. ...

  9. HDU - 5876 Sparse Graph 2016 ACM/ICPC 大连网络赛 I题 bfs+set+补图最短路

    题目链接 题意:给的补图,让你求一个源点到其他点的最短距离,因为图太稠密了, 用dij以及spfa根本不得行,这里只能用一种我不会方法来进行,这里用了bfs的方法以及set来维护,分别set维护一个未 ...

最新文章

  1. Java 8中java.util.function包中的谓词和使用者接口
  2. Linux之GDB调试命令
  3. Linq常用List操作总结,ForEach、分页、交并集、去重、SelectMany等
  4. linux下分割文件的方法,关于linux系统下分割大文件的方法
  5. 【ST4】Java 中的模板引擎 StringTemplate
  6. Android4.0升级新特性
  7. RabbitMQ入门-Topic模式
  8. eclipse常用快捷键整理
  9. 学校图书借阅管理系统
  10. ProjectZomboid服务器搭建
  11. ue4 源码编译 虚拟内存不足 堆限制
  12. C语言读取GPT分区信息
  13. chapter5. Java数据结构与java算法
  14. 二、pixhawk光流传感器PX4FLOW
  15. 一些小软件闪退的解决方案
  16. Java毕设项目会议室预约管理系统(java+VUE+Mybatis+Maven+Mysql)
  17. 关于DBSCAN图像上小圆圈和大圆圈的问题
  18. 12月20日科技资讯|百度起诉今日头条;腾讯云超 8000 名员工获 iPhone 11 Pro 奖励;PHP 7.4.1 发布
  19. uniapp开发使用uni-icons添加自定义图标
  20. 单片机:各类模块数据手册及其资源

热门文章

  1. 古筝d调变降e调怎么办_古筝各个调式转调详细解读
  2. 部署社区版deepflow
  3. service两种启动方式的区别
  4. 矩阵分析与应用-05-向量空间、内积空间与线性映射02
  5. Cadence PSpice中更改Cursor控制的曲线及打印图形Cursor信息的方法
  6. 2021-2025年中国拜勒病治疗行业市场供需与战略研究报告
  7. C++ Report:应用设计模式去简化信号控制
  8. 适合公司用的电子邮箱哪家好?企业邮箱最全功能介绍~
  9. 有向图邻接矩阵幂的意义
  10. ios 微信分享重新编码链接_iOS 微信分享文件【原创】