[7.11] 纪中C组

2024-01-30 06:48
文章标签 纪中 7.11

本文主要是介绍[7.11] 纪中C组,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

第一题
算个成绩而已嘛,我当时就码了一波快排然后没看数据于是你懂得。。
位数在30位以内
去你[哔——]的!这long long都装不下嘛!
于是一个古老而神秘,呸呸呸,一个久远的算法——高精度从我脑海里浮现……
然而浮现有个[哔——]用,我要打出来而且对才行
恩,唠叨的够多了
其实说白了就一个字符串(数组)快排加上高精减罢了

#include <fstream> 
#include <string>
#include <memory.h>
#include <cstdlib>
using namespace std;
string c[10001],m[10001],e[10001],x,y,z;
int n,i,sc[101],p;
void qsc(int l,int h)
{int i=l,j=h;string mid=c[(l+h)/2],t;if (l>=h) return;do{while (c[i].length()>mid.length()||c[i].length()==mid.length()&&c[i]>mid) i++;while (c[j].length()<mid.length()||c[j].length()==mid.length()&&c[j]<mid) j--;if (i<=j){t=c[i];c[i]=c[j];c[j]=t;i++;j--;}}while (i<=j);qsc(i,h);qsc(l,j);
} 
void qsm(int l,int h)
{int i=l,j=h;string mid=m[(l+h)/2],t;if (l>=h) return;do{while (m[i].length()>mid.length()||m[i].length()==mid.length()&&m[i]>mid) i++;while (m[j].length()<mid.length()||m[j].length()==mid.length()&&m[j]<mid) j--;if (i<=j){t=m[i];m[i]=m[j];m[j]=t;i++;j--;}}while (i<=j);qsm(i,h);qsm(l,j);
}
void qse(int l,int h)
{int i=l,j=h;string mid=e[(l+h)/2],t;if (l>=h) return;do{while (e[i].length()>mid.length()||e[i].length()==mid.length()&&e[i]>mid) i++;while (e[j].length()<mid.length()||e[j].length()==mid.length()&&e[j]<mid) j--;if (i<=j){t=e[i];e[i]=e[j];e[j]=t;i++;j--;}}while (i<=j);qse(i,h);qse(l,j);
}
void g(string s1,string s2)
{int i,l,a[101],b[101];memset(sc,0,sizeof(sc));memset(a,0,sizeof(a));memset(b,0,sizeof(b));l=s2.length();for (i=1;i<=l;i++)b[i]=s2[l-i]-'0';l=s1.length();for (i=1;i<=l;i++)a[i]=s1[l-i]-'0';for (i=1;i<=l;i++){sc[i]=a[i]-b[i]+sc[i];if (sc[i]<0){sc[i+1]=sc[i+1]-1;sc[i]+=10;}}for (i=l;i>=2;i--)if (sc[i]!=0)break;p=i;
}
int main()
{ifstream fin("score.in",ios::in);ofstream fout("score.out",ios::out);fin>>c[0]>>m[0]>>e[0];x=c[0];y=m[0];z=e[0];fin>>n;for (i=1;i<=n;i++)fin>>c[i]>>m[i]>>e[i];qsc(0,n);qsm(0,n);qse(0,n);g(c[0],x);for (i=p;i>=1;i--)fout<<sc[i];fout<<' ';g(m[0],y);for (i=p;i>=1;i--)fout<<sc[i];fout<<' ';g(e[0],z);for (i=p;i>=1;i--)fout<<sc[i];fout<<' ';
}

第三题
1. 每个人的背包能装无限多的物品,每种物品有一个价值,但只能装一件;
2. 每个人都很有个性,所以每个人的背包不会完全相同。
DaA 的团队中有M 个人,那么对于整个团队,背包价值和最大是多少呢?
这道题真的很水很水个屁
很容易看得出来,就是个组合,选最大而已
然而时间复杂度不允许。。。
那我能干吗?
撸……呸,当然是码代码啊
首先DP,f[i]为价值为i时的的方案数
我不想说啦啊啊啊

#include <iostream>
#include <cstdio>
using namespace std;
int m,n;
long long s,f[25001],su,a[1000001],i,j;
int main()
{freopen("team.in","r",stdin);freopen("team.out","w",stdout);scanf("%d%d",&m,&n);for (i=1;i<=n;i++){scanf("%d",&a[i]);su+=a[i];}f[0]=1;for (i=1;i<=n;i++)for (j=su;j>=a[i];j--)f[j]+=f[j-a[i]];for (i=su;i>=1;i--)if (f[i]>0){if (f[i]>m){s+=m*i;m=0;}elseif (f[i]<=m){s+=f[i]*i;m-=f[i];}if (m==0) break;}printf("%lld",s);
}

这篇关于[7.11] 纪中C组的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/659402

相关文章

7.11--SSH学习之Struts拦截器

拦截器: 访问Action的时候才能启动拦截器,访问其他资源不行在Action访问过程中,必须使用拦截器拦截器分为系统拦截器和用户自定义拦截器 访问ServletAPI: 解耦合的方式访问ServletAP(2种)耦合的方式访问ServletAP(2种) 示例解耦合: 解耦合一,Action继承ActionSupport public class FirstAction ext

【思维·tarjan·技巧-拓扑确定图中递推顺序】jzoj1238 自行车比赛 纪中集训提高B组

Time Limits: 1000 ms Memory Limits: 65536 KB Detailed Limits Description 自行车赛在一个很大的地方举行,有N个镇,用1到N编号,镇与镇之间有M条单行道相连,起点设在镇1,终点设在镇2。 问从起点到终点一共有多少种不同的路线。两条路线只要不使用完全相同的道路就被认为是不同的。 Input 一行两个整数:N和M(1<=N

【题解】 库特的向量 (2019.08.15纪中【NOIP提高组】模拟 B 组T1)排序

题目来源:中山纪念中学 题目描述: 从前在一个美好的校园里,有一只(棵)可爱的弯枝理树。她内敛而羞涩,一副弱气的样子让人一看就想好好疼爱她。仅仅在她身边,就有许多女孩子想和她BH,比如铃,库特,等等。不过,除却巫山不是云,理树的心理只有那个帅气高大的男孩子——恭介,这让女孩子们不得不终日唉声叹气,以泪洗面。不过恭介是那样强大而完美,根本没有办法击败他,她们也只好咬牙忍痛度日,以待反击之时。

2018年暑假 纪中培训总结

感想 这个暑假在纪中过得挺充实的,劳逸结合,与同学们相处的很开心。算法也讲了很多,但是基本上都没听懂。在这里学习环境还是很不错的,纪中的同学也都很友善,在这里基本没遇到什么烦心事,每天都很开心。 来这里学习还是值得的。虽然算是很贵,但是普及到了很多算法,比如什么主席数,AC自动机,后缀自动机,仙人掌,圆方树,树套树, Tarjan T a r j a n Tarjan。而且这里的机房和校园都

2019年暑假 纪中培训总结

前言 这次期末考完估计级排 80 + 80+ 80+。反正语文、数学、英语、历史、政治、地理都感觉考差了。 结果语文、英语、政治、历史、地理、物理都考得跟shi一样 语文做题时漏了两道题,心态很崩。作文和阅读几乎都是乱写的。结果出来作文扣了9分 w o c woc woc。 数学没满分差评。连续 n n n次考试因细节错误而爆炸。 英语学得跟shi一样,考的跟shi一样。 然后三总成

2019纪中Day eight

M o r n i n g Morning Morning 早上起来,还是那首音乐(All Falls Down)(珍惜现在,听 d a l a o dalao dalao(XXY)说他们以前的铃声跟 s h i shi shi一样) 2019.01.29【NOIP普及组】模拟赛C组 T1(YY) T2(LAGNO) T3(NIKOLA) T4(pjesma) A f t e r

2019纪中Day seven

M o r n i n g Morning Morning 一大早起来,听到了 A l a n W a l k e r Alan Walker AlanWalker的 A l l F a l l s D o w n All Falls Down AllFallsDown,学校唯一个能够听到音乐的地方……宿舍 好想听歌…… 2019.01.28【NOIP普及组】模拟赛C组 T1(数列) T

[7.10] 纪中C组

第一题 题目说的很[哔——],然而不顶什么用 说是用最少的二进制数(0,1,10之类的整数)覆盖完整数,然而想一想就可以知道,若采用最优策略,那么最少只需要整数中某一位最大的数的次数就行啦 #include <iostream>#include <cstdio>using namespace std;int k,n,i,j,m;int main(){freopen("a.in","

纪中9日游(2019.7.5~7.13)

前言 7.4日出发,来到了美丽的纪中校园,在这么美好的环境我要认真地学习。 day0 早上和初一的早早准备出发,结果一堆事10点多才出发,之后去吃了中山菜(感觉良好),然后又去孙中山故居,有些无聊。晚上没事干,为了打发时间,我找出了1个月之前的坑,把它填上了,发现之前存在很多细节上的错误,见可持久化并查集。 day1 早上发现成绩出了,以为考的很好,结果政治翻车,心态大崩。 做了一套比赛

【纪中】marathon

marathon 题目链接:marathon 题目描述 地图上有N 个城市,一只奶牛要从1 号城市开始依次经过N 个城市,最终到达N 号城市。但是这只奶牛觉得这样太无聊了,所以它决定跳过其中的一个城市(但是不能跳过1 号和N 号城市),使得它从1 号城市开始,到达N 号城市所经过的总距离最小。每一个城市都有一个坐标,从城市(x1, y1) 到城市(x2, y2) 的距离为 |x1 -