2018 ICPC 沈阳站
细胞色素训练3
排名:100/193
2018年ICPC沈阳站,学长在这里拿金了。听学长说开始时候很快的出了两题,排名第四,是可以进final的,然后一直没过题,直到最后封榜时候连过两题,金牌最后一名。
如果我们第三题能做出来,再少点罚时,是可以银的。结果:铜......
How Much Memory Your Code Is Using?
题意:给出每种数据类型占用的字节数,然后输入n条语句,数据类型+数据名或者数组,输出这n条语句占用的总的内存。
程磊写这题的时候竟然忘了输出Case......
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ull unsigned long longconst ull p = 233;
const int maxn = 1e5+100;
char s[maxn];
ll getval(char *s)
{int len = strlen(s);ll base = 0;if(s[0] == 'b' || s[0] == 'c') base = 1;else if(s[0] == 'i' || s[0] == 'f') base = 4;else if(s[0] == 'd' || (s[0] == 'l' && s[4] == ' ' && s[5] == 'l' && s[6] == 'o' && s[7] == 'n' && s[8] == 'g' && s[9] == ' ')) base = 8;else if(s[0] == '_' || (s[0] == 'l' && s[4] == ' ' && s[5] == 'd' && s[6] == 'o' && s[7] == 'u' && s[8] == 'b' && s[9] == 'l' && s[10] == 'e' && s[11] == ' ')) base = 16;int flag = 0;for(int i = len - 1; i >= 0; i --){if(s[i] == ' '){flag = i;break;}}ll cnt = 0;int f = 0;for(int i = flag + 1; i <= len - 1; i ++){if(s[i] == '[')f = 1;if(f && s[i] >= '0' && s[i] <= '9')cnt = cnt * 10 + s[i] - '0';}if(cnt == 0) cnt = 1;return base * cnt;
}int main()
{int Case = 0;int T;scanf("%d", &T);while(T --){int n;scanf("%d", &n);getchar();ll ans = 0;for(int i = 1; i <= n; i ++){gets(s);ans += getval(s);}ll aans = ans / 1024;if(ans % 1024)aans ++;printf("Case #%d: %lld\n", ++ Case, aans);}return 0;
}
Insertion Sort
题意:题意可以转化为:输入n,k,p,输出满足以下条件的n的全排列有多少种(模p):进行k轮或者小于k轮排序后,能使这个序列的逆序数为0。大概就是这么个意思吧。
然后韩巍推出了公式:solve(n,k)=k!*(1+(n-1)*(n-k))
#include <bits/stdc++.h>
using namespace std;#define ll long long
#define ull unsigned long long
const int maxn = 100;ll n, k;
ll p;
ll f[maxn];
ll solve(ll n, ll k, ll p){ll ans = f[k] * ((1 + (n-1) * (n-k) % p) % p) % p;ans %= p;return ans;
}
int main()
{int Case = 0;int T; scanf("%d", &T);while(T --){scanf("%lld %lld %lld", &n, &k, &p);f[0] = 1;for(int i = 1; i <= n; i ++)f[i] = 1ll * f[i-1] * i % p;ll ans;if(k >= n - 1) {ans = f[n];}else {ans = solve(n, k, p);}printf("Case #%d: %lld\n", ++Case, ans);}return 0;
}
Best ACMer Solves the Hardest Problem
题意:给你n个点的坐标和点权,然后让你进行m次操作,操作共有四种:1、插入一个点(x,y),点权为w;2、删除位于(x,y)的点;3、给距离点(x,y)的所有点的点权都加上sqrt(k);4、输出距离点(x,y)的距离为sqrt(k)的所有点的点权和。
这题到最后我们都没做出来......T了。
一个是找整点是可以初始化的,我们没有;还有就是不能用map存点,map太慢,要用数组存,数组初始化不能memset,而是要用set记录一下哪些点被用到了,只需要初始化这些用过的点即可,对于每组数据都要clear那个set。
#include <bits/stdc++.h>
using namespace std;
#define ll long long
set<pair<ll,ll> > s;
set <pair<ll,ll> >::iterator it;
vector<pair<ll,ll> >v[10000010];
ll a[6005][6005];
const ll p = 6000;
ll n, m;
ll judge(ll x, ll z)
{ll y = z - x * x;if(y < 0) return -1;ll yy = sqrt(y);if(yy * yy == y)return yy;return -1;
}
bool ok(ll x,ll y)
{if(x>=1&&x<=p&&y>=1&&y<=p)return true;return false;
}
void init()
{ll Max=10000000;for(ll i=0;i*i<=Max;i++)for(ll j=0;i*i+j*j<=Max;j++)if(i*i+j*j<=Max)v[i*i+j*j].push_back(make_pair(i,j));return ;
}
int main()
{init();ll Case = 0;ll T;scanf("%lld", &T);while(T --){printf("Case #%lld:\n", ++ Case);scanf("%lld %lld", &n, &m);s.clear();for(ll i = 1; i <= n; i ++){ll x, y;ll z;scanf("%lld%lld%lld",&x,&y,&z);s.insert(make_pair(x,y));a[x][y]=z;}ll ans = 0;while(m --){ll op, x, y, k;ll w;scanf("%lld%lld%lld",&op,&x,&y);x =(x + ans) % p + 1, y =(y + ans) % p + 1;if(op == 1){scanf("%lld",&w);a[x][y]=w;s.insert(make_pair(x,y));}else if(op == 2){a[x][y]=0;}else if(op == 3){scanf("%lld%lld",&k,&w);if(k == 0){s.insert(make_pair(x,y));a[x][y]+=w;continue;}for(int i=0;i<v[k].size();i++){ll xx=v[k][i].first,yy=v[k][i].second;if(ok(x-xx,y-yy)&&a[x-xx][y-yy]!=0){a[x-xx][y-yy]+= w;s.insert(make_pair(x-xx,y-yy));}if(ok(x-xx,y+yy)&&yy!=0&&a[x-xx][y+yy]!=0){a[x-xx][y+yy] += w;s.insert(make_pair(x-xx,y+yy));}if(xx!=0&&ok(x+xx,y-yy)&&a[x+xx][y-yy]!=0){a[x+xx][y-yy] += w;s.insert(make_pair(x+xx,y-yy));}if(xx!=0&&yy!=0&&ok(x+xx,y+yy)&&a[x+xx][y+yy]!=0){a[x+xx][y+yy]+= w;s.insert(make_pair(x+xx,y+yy));}}}else if(op == 4){scanf("%lld",&k);ll tmp = 0;if(k == 0){tmp += a[x][y];ans = tmp;printf("%lld\n", ans);continue;}for(int i=0;i<v[k].size();i++){ll xx=v[k][i].first,yy=v[k][i].second;if(ok(x-xx,y-yy))tmp+=a[x-xx][y-yy];if(ok(x-xx,y+yy)&&yy!=0)tmp+=a[x-xx][y+yy];if(xx!=0&&ok(x+xx,y-yy))tmp+=a[x+xx][y-yy];if(xx!=0&&yy!=0&&ok(x+xx,y+yy))tmp+=a[x+xx][y+yy];}ans = tmp;printf("%lld\n", ans);}}for(it=s.begin();it!=s.end();++it){ll xx=(*it).first,yy=(*it).second;a[xx][yy]=0;}}return 0;
}
2018 ICPC 沈阳站相关推荐
- 21年icpc沈阳站记录
icpc沈阳站记录 2021.11.22凌晨 从昨晚紧张到辗转反侧,虽然早就做好了打铁的心理准备,但待到比赛最后一刻两道铜牌题还没出时,满脑子的不甘心.当然最后肯定铁了395/576. 11.21也就 ...
- 2021 ICPC 沈阳站 D题 Journey to Un‘Goro (打表+找规律)
2021 ICPC 沈阳站 D.Journey to Un'Goro [链接][http://codeforces.com/gym/103202/problem/D](http://codeforce ...
- ZOJ 4062 Plants vs. Zombies 2018 ICPC 青岛站 E Plants vs. Zombies
ZOJ 4062 二分 哎,二分,二分,二分,我咋就没想到啊,在一篇博客上看到一句话: 一般此类最小值最大问题都是二分,此题显然也是可以二分植物的高度的. 博客链接:https://www.cnblo ...
- 训练实录 | 第 45 届ICPC沈阳站(牛客重现赛)
第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(沈阳)(重现赛) 传送门:ICPC沈阳 F - The Witchwood 这重现赛,这数据,我既然被hack了,我写的代码太拉跨了????? ...
- 2018 ACM/ICPC 沈阳站小结
第二次现场赛,能拿金已经很开心了 热身赛 开幕式后的热身赛都是训练过的三个题,40min基本就解决了,剩下的时间就是在调试机器什么的 现场赛 上来队友先过了J的模拟,我看了看G题,发现可做就直接上了, ...
- 2018 ACM/ICPC 沈阳站 J How Much Memory Your Code Is Using?
题目描述 In the C++ language, the values of variables are stored somewhere in the computer memory as zer ...
- 2018 icpc 焦作站 自闭记
今年三站,秦皇岛,徐州,焦作.全部打铜,心情不是一般的失落. 可能我真的只有铜牌的水平吧. 我们5题 14个小时罚时,离银牌线还差5个小时罚时. 如果我码力再强一点,F题不出bug 这里就能少3个小时 ...
- Gym 102028D Keiichi Tsuchiya the Drift King(2018 ICPC 焦作站 D 题) 计算几何
去年暑假集训了两个月就去了焦作,这个题一直卡着到最后也没做出来,很遗憾的在人生中第一场 ICPC 比赛打了铁.当时也没有补题的习惯,这个题知道了大致做法后就放过了.今年准备银川赛区,翻出了往年的比赛真 ...
- 2020 ICPC沈阳站-D,H
icpc好难啊,希望有生之年能拿牌ort..... D. Journey to Un'Goro (思维) 链接:https://codeforces.com/gym/103202/problem/D ...
最新文章
- hive创建mysql表,hiveMysql创建、修改、删除字段/表
- cmd c语言 图形,CMD-C彩图隐写方案
- 《中国人工智能学会通讯》——11.64 基于成对约束的属性特征选择
- delphi tpanel 内凹效果_别墅装修公司前十名|别墅装修效果图|现代精致简约
- futuretask java 并发请求_Java并发机制(9)--Callable、Future、FutureTask的使用
- 保持ssh的连接不断开
- 拓端tecdat|R语言用相关网络图可视化分析汽车配置和饮酒习惯
- 工作流引擎 开发框架 java源码 电商源码
- Android4种网络连接方式HttpClient、HttpURLConnection、OKHttp和Volley优缺点和性能对比
- js实现——鼠标单击事件-onclick和双击事件-ondblclick
- pdo操作oracle,PDO基础操作
- 常见安全漏洞及其解决方案
- 数据可视化——投掷两个6面的骰子
- 剑指offer——栈
- 不知道视频怎样提取音频?这里有详细教程分享
- SAP 采购申请、采购订单的审批策略
- 基于ruoyi+vue+elementUI实现列表,新增,附件上传,tab+springBoot+mybatis+oracle序列+批量新增
- vue合并表格excel导出_Vue实现导出excel表格功能
- iOS iPhone X 适配
- 在Python中使用StanfordOpenIE