ACM实训冲刺第十九天

2024-05-27 01:28
文章标签 实训 acm 冲刺 第十九

本文主要是介绍ACM实训冲刺第十九天,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

第一套(搞定)

#include<stdio.h> 
#include<string.h>
int main(){int n;scanf("%d",&n);char s[100];getchar();for(int i=0;i<n;i++){gets(s);int cnta=0,cnte=0,cnti=0,cnto=0,cntu=0;for(int i=0;i<strlen(s);i++){if(s[i]=='a'){cnta++;}else if(s[i]=='e'){cnte++;}else if(s[i]=='i'){cnti++;}else if(s[i]=='o'){cnto++;}else if(s[i]=='u'){cntu++;}}printf("a:%d\n",cnta);printf("e:%d\n",cnte);printf("i:%d\n",cnti);printf("o:%d\n",cnto);printf("u:%d\n",cntu);	}return 0;
}

第二套(搞定)

VJ输入提示Rejected by HDU WAF. Please tweak you code.

代表扫描时未换行,添加\n即可

#include<stdio.h>
#include<string.h>
int main(){int n;char s[10001][20];int cnt[1001];while(scanf("%d\n",&n)&&n!=0){for(int i=0;i<n;i++){scanf("%s\n",s[i]);}for(int i=0;i<n;i++){cnt[i]=0;}for(int i=0;i<n;i++){for(int j=i+1;j<n;j++){if(strcmp(s[i],s[j])==0)cnt[i]++;}}int max=0;int k;for(int i=0;i<n;i++){if(max<cnt[i]){max=cnt[i];k=i;}}printf("%s\n",s[k]);}return 0;
}

第三套(搞定)

#include<stdio.h>
int main(){int n,m;scanf("%d %d",&n,&m);int dp[10001];for(int i=0;i<=m;i++){dp[i]=0;}for(int i=1;i<=n;i++){int w,d;scanf("%d %d",&d,&w);//位置颠倒了 for(int j=m;j>=w;j--){//条件写错了 if(dp[j-w]+d>dp[j]){dp[j]=dp[j-w]+d;}}}printf("%d\n",dp[m]);return 0;
}

第四套(选择放弃)

#include<stdio.h>
#include<stdlib.h>
typedef struct{int a;int b;int c;
}d;
int cmp(const void*a,const void*b){d*qa=(d*)a;d*qb=(d*)b;return qb->b-qa->b;
}
int main(){int e,f;scanf("%d %d",&e,&f);d*list=(d*)malloc(e*sizeof(d));for(int i=0;i<e;i++){scanf("%d %d",&list[i].b,&list[i].c);list[i].a=i;}qsort(list,e,sizeof(d),cmp);int g=0;int h=0;for(int j=0;j<f;j++){if(list[j].c>g){g=list[j].c;h=list[j].a;}}h=h+1;printf("%d\n",h);free(list);return 0;
}

第五套(搞定)

/*1.读取死宅数量 n2.每个死宅需要快乐a[i]点3.所有死宅中最大的快乐需求数 ma4.读取每个死宅需要的快乐点数5.读取喝快乐水增加的快乐点数k6.特殊情况k==17.二分法计算最短时间 l r m sum(累加额外分数)8.输出最短时间l 
*/
#include<stdio.h>
#include<iostream>
using namespace std;
int main(){int n;scanf("%d",&n);int a[n];int ma=0;//初始化勿忘 for(int i=0;i<n;i++){scanf("%d",&a[i]);ma=max(ma,a[i]);}int k;scanf("%d",&k);if(k==1){printf("%d\n",ma);return 0;}int l=0,r=ma,m;while(r>l) {//一定不要忘记在这个循环条件内运行 m=(l+r)/2;long long sum=0;//long long一定不能省去 for(int i=0;i<n;i++){if(a[i]>m){sum+=(a[i]-m)/(k-1)+((a[i]-m)%(k-1)!=0);//注意是k-1,不是l }}if(sum>m){l=m+1;//是1 ,不是l }else r=m;}printf("%d\n",l);return 0;
}

第六套 (选择放弃)

#include<stdio.h>#define N 20
int count, n;// 使用更具描述性的参数名
void dfs(int row, int columnMask, int leftDiagonalMask, int rightDiagonalMask) {if (row == n) {count++;return;}// 找到第一个未被占用的位置(列)int availablePositions = ~(columnMask | leftDiagonalMask | rightDiagonalMask) & ((1 << n) - 1);while (availablePositions) {// 选择最右边的1,即当前行可放置皇后的列int position = availablePositions & -availablePositions;dfs(row + 1, columnMask | position, (leftDiagonalMask | position) << 1, (rightDiagonalMask | position) >> 1);// 移除已尝试的位置availablePositions &= ~position;}
}int main() {while (scanf("%d", &n) == 1) {if (n == 0) break;count = 0;dfs(0, 0, 0, 0);printf("%d\n", count);}return 0;
}

 

#include<stdio.h> 
#define N 20
int cnt,n;
void dfs(int k,int col,int ld,int rd){if(k>=n){cnt++;return;}else{int pos=((1<<n)-1) & ~(col| ld|rd);while(pos){int p=pos & ~pos;pos-=p;dfs(k+1,col|p,(ld|p)<<1,(rd|p)>>1);}}
}
int main(){while(scanf("%d",&n)==1){if(n==0) break;cnt=0;dfs(0,0,0,0);printf("%d\n",cnt);}return 0;
}

【注意】第四套和第六套之前文章当中写的代码有误,以本篇文章的为主

第四套和第六套实在太难了QAQ,打算放弃了

这篇关于ACM实训冲刺第十九天的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

认识、理解、分类——acm之搜索

普通搜索方法有两种:1、广度优先搜索;2、深度优先搜索; 更多搜索方法: 3、双向广度优先搜索; 4、启发式搜索(包括A*算法等); 搜索通常会用到的知识点:状态压缩(位压缩,利用hash思想压缩)。

两个月冲刺软考——访问位与修改位的题型(淘汰哪一页);内聚的类型;关于码制的知识点;地址映射的相关内容

1.访问位与修改位的题型(淘汰哪一页) 访问位:为1时表示在内存期间被访问过,为0时表示未被访问;修改位:为1时表示该页面自从被装入内存后被修改过,为0时表示未修改过。 置换页面时,最先置换访问位和修改位为00的,其次是01(没被访问但被修改过)的,之后是10(被访问了但没被修改过),最后是11。 2.内聚的类型 功能内聚:完成一个单一功能,各个部分协同工作,缺一不可。 顺序内聚:

研一实训总结

说长不长说短不短的一个月,从最开始的激动到期间,要中期要兼顾找实习准备笔试面试的焦虑,再到最后一周的加班加点和总结,收获和感触还是蛮多的。 首先,这一个月让我更加全面的认知了完成一个从无到有项目的过程,激发了我对自己工程师职业生涯的向往和对自己有了更广的除了编码以外的要求。 我一直是一个结果导向和追求效率的人,所以在团队合作过程中我们也经历了最开始的不知所措,到争执,再到主动配合和贡献,这个过

【转载】ACM感悟

今天看了一篇我们学校前辈的ACM的感悟,觉得写的十分有道理,这里转载,文章还会不断的改进和更新。 原文链接:http://www.cnblogs.com/Chierush/p/3760870.html?ADUIN=1339764596&ADSESSION=1401536826&ADTAG=CLIENT.QQ.5329_.0&ADPUBNO=26349 声明:本文是写给弱校ACM新手的一点

我们依旧在追梦的路上-山东省第六届ACM比赛总结

这场比赛从结果而言达到了预期(金牌),从过程而言和我的预期相差甚远(打的太乱,个人发挥很差),还好关键时刻队友抗住压力,负责后果真的不堪设想。 热身赛 热身赛纯粹测机器的,先把A,B,C草草水过(A题小写x打成大写的也是醉了),我和老高开始各种测机器,long long不出所料是lld的,试了一下除0和数组越界的re问题,发现没有re,只有wa(甚至数组越界还AC了),至于栈深的话也没过多追

2024国赛论文拿奖快对照这几点及评阅要点,勿踩雷区!(国赛最后冲刺,提高获奖概率)

↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ 2024“高教社杯”全国大学生数学建模竞赛已过去第三个夜晚,小伙伴们都累了没有,如果感到思维滞涩,别忘了稍作休息,放松一下自己,准备迎接国赛非常重要的收尾阶段——论文。 国赛这几天的努力最后都

ACM东北地区程序设计大赛

不得不说随着参赛级别的提高,题目真的是越来越难啊,不过队长真是给力啊,在我们三个共同努力之下拿下了地区赛三等奖,哈哈我们可是大一唯一一只获奖队,终于在这次比赛打败了田大神。。。大神是失手了,俺和他差距还是挺大的。。。队友陈彤马上要去服兵役了,他说这是我们送给他最好的离别礼物,希望那家伙在部队好好干,以后谁干揍我!!!东北地区赛结束后,今年已经估计没机会参加亚洲区比赛了,赶紧补高数和线数啊!!别挂了

ACM比赛中如何加速c++的输入输出?如何使cin速度与scanf速度相当?什么是最快的输入输出方法?

在竞赛中,遇到大数据时,往往读文件成了程序运行速度的瓶颈,需要更快的读取方式。相信几乎所有的C++学习者都在cin机器缓慢的速度上栽过跟头,于是从此以后发誓不用cin读数据。还有人说Pascal的read语句的速度是C/C++中scanf比不上的,C++选手只能干着急。难道C++真的低Pascal一等吗?答案是不言而喻的。一个进阶的方法是把数据一下子读进来,然后再转化字符串,这种方法传说中

2014年ACM/ICPC亚洲区现场赛广州赛区总结

本来不想提这件事的,后来学姐找我谈心时提到这件事,我突然意识到在这件事情上我错了一次,明明答应的去参加这场比赛,最后临时决定不去......其实中间有很多很多原因 1:我和tyh,sxk临时不去主要是广州太远,我们身上money不够,呵呵。。。别笑我们,你以为我们是高富帅啊,去一趟广州消费要2个月的生活费,奖学金又没发,你让我找我妈要她辛辛苦苦挣来的工资吗?!从哈尔滨到广州单来回的火车票每个人就

两个月冲刺软考——逻辑地址与物理地址的转换(例题+讲解);文件类型的考点

1.已知计算机系统页面大小和进程的逻辑地址,根据页面变换表(页号-物理块号),求变换后的物理地址。 首先介绍几个公式: 逻辑地址 = 页号 + 页内地址 (默认为32机位) 物理地址 = 物理块号 + 物理地址的页内地址 其中:页内地址 = 物理地址的页内地址 解题:由于页面大小为4K,即4K=2的12次方,占0~11位;也就是页内地址有12位,故十六进制数中的C28是页内地址,那