博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一道关于DOTA的模拟题(CSU2012校赛)
阅读量:5264 次
发布时间:2019-06-14

本文共 1599 字,大约阅读时间需要 5 分钟。

#include
#include
#include
const int bk[] = { 0, 200, 275, 325, 400, 475, 575, 675, 800, 900, 1000};const int team[] = { 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1};char s[15][30], a[30], b[30];int m[15], kill[15], n;int findbuf( char *x){ int i; for( i = 1; i <= 10; i ++) if( strcmp( s[i], x) == 0) return i;}void cal( char *a, char *b){ int x = findbuf(a), y = findbuf(b); if( strcmp( a, b) == 0) return; if( team[x] == team[y]) { if( kill[y] >= 0) m[y] -= 200; else m[y] -= bk[ -( kill[y] + 1) ]; kill[y] = 0; } else { if( kill[x] <= 0) { kill[x] = 1; } else kill[x] ++; if( kill[x] > 10) kill[x] = 10; if( kill[y] > 0) kill[y] = -1; else kill[y] --; if( kill[y] < -10) kill[y] = -10; m[x] += bk[ kill[x]]; m[y] -= bk[ -kill[y]]; } if( m[y] < 0) m[y] = 0;}int main(){ while( scanf( "%s", s[1]) != EOF) { m[1] = 4726; kill[1] = 0; for( int i = 2; i <= 10; i ++) { scanf( "%s", s[i]); m[i] = 4726; kill[i] = 0; } scanf( "%d", &n); while( n --) { scanf( "%s%s", a, b); cal( a, b); //printf( "%d %d %d %d\n", kill[findbuf(a)], kill[findbuf(b)], m[findbuf(a)], m[findbuf(b)]); } for( int i = 1; i <= 10; i ++) { printf( "%d\n", m[i]); } } return 0;}

 

转载于:https://www.cnblogs.com/Yu2012/archive/2012/04/17/2453080.html

你可能感兴趣的文章
一种高效的序列化方式——MessagePack
查看>>
2019年春季学期第四周作业
查看>>
2019春第十周作业
查看>>
解决ThinkPHP关闭调试模式时报错的问题汇总
查看>>
【APT】SqlServer游标使用
查看>>
关于ExecuteNonQuery()返回值为-1
查看>>
Firefox修復QQ快速登錄
查看>>
PAT——1060. 爱丁顿数
查看>>
分布式技术追踪 2017年第二十期
查看>>
git添加公钥后报错sign_and_send_pubkey: signing failed: agent refused operation的解决办法
查看>>
Linux环境变量永久设置方法(zsh)
查看>>
MVC4.0 利用IActionFilter实现简单的后台操作日志功能
查看>>
脑袋卡在窗子里
查看>>
ruby 中文字符to_json后乱码(unicode)
查看>>
《大道至简》第六章读后感
查看>>
codeforce 597C-Subsequences(dp+树状数组)
查看>>
[android](学习笔记6)为应用程序添加对话框(1)
查看>>
windows下mongodb安装与使用
查看>>
rotate the clock
查看>>
bugku 变量
查看>>