USACAO gift1

背景:模拟,结构体,strcmp()。

学习:1.最大的易错点是,除数为0的情况,开始没有考虑,调了才发现。

/*
ID:jibancan1
LANG:C++
TASK:gift1
*/
#include<stdio.h>
#include<string.h>
  struct child{
    	char str[15];
	    int x;                          //输出与接收的差值。
  }p[10];
int main(void){
	freopen("gift1.in","r",stdin);
	freopen("gift1.out","w",stdout);
	int np;
	scanf("%d",&np);
	for(int i=0;i<np;i++)
	    scanf("%s",p[i].str);
	char key[15];                        //暂时存放读入的字符串。
	for(int j=0;j<np;j++){
		scanf("%s",key);
		int k=0;                      //找出当前读入名字是哪个?
		for(;k<np;k++)
		    if(strcmp(key,p[k].str)==0) break;
		int money,ng;                 //初始的钱和要给的人数。
		scanf("%d %d",&money,&ng);
		if(ng!=0) p[k].x-=money-money%ng;
		for(int ii=0;ii<ng;ii++){     //把钱分给ng个人。
			scanf("%s",key);
			for(k=0;k<np;k++)
				if(strcmp(key,p[k].str)==0)  break;
			if(ng!=0)	p[k].x+=money/ng;
		}
	}
	for(int jj=0;jj<np;jj++)
		printf("%s %d\n",p[jj].str,p[jj].x);
	return 0;
}
时间: 2024-08-29 07:16:27

USACAO gift1的相关文章

近期开始以刷通USACAO为主。

看到一段话:先去usaco刷!然后uva,hdu,poj各种刷 要看的书: 算法导论! lrj黑书! 周大虾的计算几何!组合数学!离散数学!数据结构!图论!数论概论! (C++ for )STL!(Java for)大数! 最后把dp两字的精华理解了,综合在每个算法: 再体会一下网络流的各种神奇,基本上就完成了regional赛的水平了.

USACAO beads

背景:困扰了我昨天一个晚上,原来开始的想法一直是不对的,我一直凭借直觉感觉(没有任何理论依据)认为必须在r和b的交接点切分才会到达最多豆子.最后我在草稿本上列举出了一种不符合的情况,才开始改程序. 思路:就是对每一个分割点进行计算看它能有多少个豆子,取所有分割点中豆子最多的. 心得:对于算法我以前抱有评感觉做得陋习,而没有去深究并尝试证明,这样终将导致出错.深入问题本身,用逻辑严密的方法分析清楚所有情况. /* ID:jibanca1 LANG:C++ TASK:beads */ #includ

USACAO ride

背景;就模拟. 学习:1.开始把一个,int变量定义为char型了,调试发现出现负值明显是最高位变为1,结果一看怎么是插入!!!!! /* ID:jibanca1 LANG:C++ TASK:ride */ #include<stdio.h> #include<string.h> int main(void) { freopen("ride.in","r",stdin); freopen("ride.out","

USACAO friday

背景:开始一看好一道模拟题,应该很复杂吧,想了好久简化了还好.还是调了几次,竟然因为没有打'\n'而wa了!!! 学习:1.今天晚上和李兵学长逛了逛校园,交流了学习上的事,acm这条路我自己选的跪着走好走完!再次感谢学长对小白的关照,还是学长请我喝的奶茶,感谢.(学长已经在soj过了300题了) /* ID:jibancan1 LANG:C++ TASK:friday */ #include<stdio.h> int isleap(int x); int isleap(int x){ if(x

USACO Chapter 1 Section 1.1

USACO的题解和翻译已经很多了... 我只是把自己刷的代码保存一下. 1.PROB Your Ride Is Here 1 /* 2 ID:xiekeyi1 3 PROG:ride 4 LANG:C++ 5 */ 6 7 #include<bits/stdc++.h> 8 using namespace std ; 9 10 int main() 11 { 12 freopen("ride.in","r",stdin); 13 freopen(&quo

USACO Train 1.1.2 Greedy Gift Givers

这道题大意就是几个人互送礼物,让你求每个人的盈利. 原题给的样例数据: 5(人的个数.) =========(下面是人名,输出按照这顺序)davelauraowenvickamr ==========(下面是每个人的要给的人)dave200 3lauraowenvick ----------owen500 1dave ----------amr150 2vickowen -----------laura0 2amrvick ----------vick0 0 这题使用模拟算法就行了,就是注意输入

USACO Greedy Gift Givers 解题心得

本题算法不难想出,但是中间还是出现了一些问题. 开始的时候是#11:Execution error,后来把普通的数组改成动态数组后问题消失. 后来又出现了Execution error: Your program had this runtime error: Illegal file open (/dev/tty). 随后google解决方案,多数都是数组开小了.遂开大数组,无效. 突然意识到很有可能是低级错误,于是检查代码. 发现写了个 for(int i = 0; i < n2 ; i++

usaco1-02

/* ID:i_goodboy1 PROG:gift1 LANG:C++ */ #include <cstdio> #include <iostream> #include <map> #include <string> #define F(i,a,b) for(int i=a;i<=b;i++) #define outs(s) std:cout<<s<<endl using namespace std; int n; map&

angular表单验证实例----可用的代码

前段时间,公司做一个单页面,就是一个表单验证,早开始在菜鸟教程上关注了angular,所以下派上用场了 angular里面对于表单验证,设置了很多指令. 也就是说不用自己写一些逻辑,直接绑定指令就行. ng-app     启动你angular的模块 ng-controller 控制器,启动你angualr里面的逻辑代码作用在页面上 ng-options  循环你select里面的option标签,很好用的 ng-submit,表单提交执行的 novalidate  表单form配合后期检测的