總結——關於2017 10 9測試的分析總結
来源:互联网 发布:java private的作用 编辑:程序博客网 时间:2024/05/16 01:46
NOIP 2017 模拟
2017 10 9
T1 :
题目:
AHOI 2003
显而易见这是一道简单的字符串处理题。
毫无悬念的Ac。
代码:
#include<string>#include<cstdio>#include<map>#define pow4(x) x*x*x*xusing namespace std;int n,t;map <string,int> m;inline bool get(){char c=getchar();while((c<'a'||c>'z')&&(c<'A'||c>'Z')) if((c=getchar())==EOF) return false;string s="";while((c>='a'&&c<='z')||(c>='A'&&c<='Z')){if(c>='A'&&c<='Z') c=c-'A'+'a';s+=c;c=getchar();}++m[s];++n;return true;}int main(){while(get());for(map <string,int> :: iterator it=m.begin();it!=m.end();++it) t+=pow4(it->second);printf("%d %d\n",t,n);return 0;}
题目:
好吧,我承认我脑洞太大,太神化出题人了。。。。。。
正解:
varn, i, j, l, r, x, si, fj, ti, tj ,ans : longint;t, s, f : array [0..1001] of longint;function max (a, b : longint) : longint;begin if a > b then exit (a) else exit (b);end;function min (a, b : longint) : longint;begin if a > b then exit (b) else exit (a);end;begin read (n); for i := 1 to n do read (t[i], s[i], f[i]); for i := 1 to n do begin ans := 0; for j := 1 to n do if i <> j then begin if (s[i] < f[i]) and (s[j] < f[j]) then begin l := max (s[i], s[j]); r := min (f[i], f[j]); if l > r then continue; if t[i] - s[i] = t[j] - s[j] then inc (ans); end else if (s[i] > f[i]) and (s[j] > f[j]) then begin l := min (s[i], s[j]); r := max (f[i], f[j]); if l < r then continue; if s[i] + t[i] = s[j] + t[j] then inc (ans); end else begin if s[i] < f[i] then begin si := s[i]; ti := t[i]; fj := s[j]; tj := t[j]; l := max (s[i], f[j]); r := min (f[i], s[j]); end else begin si := s[j]; ti := t[j]; fj := s[i]; tj := t[i]; l := max (s[j], f[i]); r := min (f[j], s[i]); end; if l > r then continue; x := tj - ti + si + fj; if (x >= l * 2) and (x <= r * 2) then inc(ans); end; end; write (ans, ' '); end;end.
T3 :
题目:
题解找不到了,那就水一发吧。。。
#include<cstdio>#include<algorithm>#define lowbit(i) i&-i#define add(a) for(;a.orz<=200001;a.orz+=lowbit(a.orz)) sum[a.orz]+=a.num,++day[a.orz]#define want(a) int x=0; for(;i;i-=lowbit(i)) x+=a[i]; return xstruct node{int num,orz;inline bool operator < (const node &a) const{return num>a.num;};}t[200010],d[200010];int n,m;int r[200010],day[200010],ans[200010],sum[200010];inline int read(){int i=0;char c=getchar();while(c<'0'||c>'9') c=getchar();while(c>='0'&&c<='9') i=(i<<3)+(i<<1)+c-48,c=getchar();return i;}inline void write(int x){short sum=0;char c[10];do c[++sum]=x%10+48,x/=10; while(x);while(sum) putchar(c[sum--]);putchar(' ');}inline int qsum(int i) {want(sum);}inline int qday(int i) {want(day);}int main() {n=read();m=read();for(int i=1;i<=m;++i) t[i].num=read(),t[i].orz=i;for(int i=1;i<=n;++i) d[i].num=read(),r[i]=read(),d[i].orz=i;std::sort(t+1,t+m+1);std::sort(d+1,d+n+1);for(int i=1,head=1;i<=n;++i) {while(t[head].num>d[i].num&&head<=m) {add(t[head]);++head;}int _l=0,_r=m+1;while(_l+1<_r) {int mid=_l+_r>>1;qsum(mid)-qday(mid)*d[i].num>=r[d[i].orz] ? _r=mid : _l=mid;}ans[d[i].orz]=_l==m ? 0 : _r;}for(int i=1;i<=n;++i) write(ans[i]);return 0;}
阅读全文
0 0
- 總結——關於2017 10 9測試的分析總結
- 總結——關於2017 10 17測試的分析總結
- 總結——關於2017 10 16測試的分析總結
- 總結——關於2017 10 14測試的分析總結
- 總結——關於2017 10 13測試的分析總結
- 總結——關於2017 10 11測試的分析總結
- 總結——關於2017 10 8測試的分析總結
- 總結——關於2017 10 19測試的分析總結
- 總結——關於2017 10 20測試的分析總結
- 總結——關於2017 10 23測試的分析總結
- 總結——關於2017 10 24測試的分析總結
- 總結——關於2017 10 26測試的分析總結
- 總結——關於2017 10 27測試的分析總結
- 總結——關於2017 10 30測試的分析總結
- 總結——關於2017 10 31測試的分析總結
- 總結——關於2017 11 2測試的分析總結
- 總結——關於2017 11 3測試的分析總結
- 總結——關於2017 11 6測試的分析總結
- Eclipse在线安装插件进度缓慢问题
- Anaconda 错误:numpy.core.multiarray failed to import
- 高精度 加、减、乘、除 模板
- hibernate学习以及文件以及注释
- Java Web Cookie跟Session
- 總結——關於2017 10 9測試的分析總結
- Java线程池 ExecutorService
- android 抽屉菜单
- idea如何配置dtd
- 索引/PL/SQL编程/类型与赋值/控制流程/游标/动态语句/异常处理/导入/导出
- Android如何正确获得View的宽和高
- Lottie
- ubuntu下 Firefox&Chromium浏览器代理配置
- NOIP2011提高组 DAY2 题解&总结