二〇一三年计算及二零一四年规划

光阴过的真快,恍然之间,自个儿一度进化30虚岁的诀窍了。在此从前平素想不清楚,为什么小的时候觉得日子过的真慢,每日想长大了,能够做父母做的那个事情,比如不要挨打,比如上班赚钱,比如娶个媳妇等等。近来那个都做到了,却认为日子一天比一天过的快,快到甚至有点心惊胆战了,那么多的工作并未做,万一曾几何时看到马克思了,真不好交待。直到读了李笑来老师的《把日子作为朋友》那本书(相当引进各位去读下,肯定会有差异的得到)才清楚,原来是与经验有关。伍周岁长到6虚岁的一年,占去了人生的二成,而2八虚岁到贰拾八周岁的一年,去只占已走过人生的3%,20:3,那是多大的比例呀,也难怪觉得how
time flies!

Description

突发性,想想过去的一年,是相当倒霉的一年,是不过悲伤的一年,是可是失望的一年,是从未有过进步的一年。一向想写个小结,却一向未曾下结论。那两日把本人2018年写的二〇一三年的干活统一筹划翻了出去,一条一条比较看了下:

在一部分一对一游戏的较量(如下棋、乒球和羽球的单打)中,大家平日会赶上A胜过B,B胜过C而C又胜过A的有趣场馆,无妨形象的称之为剪刀石头布状态。有的时候,无聊的众人会津津乐道于总括有微微那样的剪刀石头布动静产生,即有多少对无序三元组(A, B,
C),满足当中的1个人在比赛后赢了另1位,另一人赢了第多少人而第多个人又胜过了第壹私有。注意那里无序的意味是说安慕希组一月素的一一并不首要,将(A,
B, C)、(A, C, B)、(B, A, C)、(B, C, A)、(C, A, B)和(C, B,
A)视为等同的情状。

2013年干活统一筹划与计算:

1.熟稔采纳ASP.NET MVC +jQuery+SQL Server
的网站开发架构。很好的成就工作职分。要成为单位此架构下开发的骨干人才和核心技术能力。在软件架构划设想计、代码编写方面有加强。

小结:那一个马虎粗心,不敢拍胸口讲曾经完结了,不过有些算是应付过去了,只是个人对友好不比意,觉得那中间依旧有广大亟需核查和上学的地点。

2.出席十二月份“系统框架结构划设想计师”考试,争取获得证书,尽管拿不到也要总分上直达须求,至少个中两门战表明到供给。

小结:这一个,只做了一件事,花钱买了架构划设想计的参考资料,其余什么都没干。其实考证不是友好的目标,在存活公司,感觉学习进步上,某个不方便,一是不正规,二是机关小,三是以此城池的软件业也很相似。所以想通过以考促学。未来看来,这些想法值得再细致商榷。

3.观望一本相比较经典的心思学书籍,调理个人的心气和情绪。

小结:主要依然想调适下个人的修改和心理,觉得在那方面有对比多的供不应求。不过,很遗憾,书是买了却没有看。

4.读书一本职场方面包车型大巴书本,有利于团结的行事和职业规划。

总结:结业就在昨天那一个单位办事四五年了,一贯认为没有提升,无论是专业技能上,依然在品种管理上,依然在另内地点,即使有时候也能取得领导和共事的认可,然则本人对友好的承认度始终不高,所以想在职场上全部变动。那些是有走动,买了,也读了,而且持续一本,不止3次。可是,结果貌似也没有多大的改进。

5.阅读一本时间管理方面包车型大巴书籍,更客观统筹和利用个人时间,学习时光管理。

总结:那一点有点凌乱,李笑来老师的书很好,个人总结下,正是决定大脑,做要好应当做的事。不过,说起简单,做起难,只可以稳步来吧。

6.阅读一本英文计算机专业书籍,升高英文阅读能力。

小结:那些纯真没有。

7.周周至少一篇专业技巧博客文章。

小结:那一个就杰出惭愧了,不用自个儿说,大家从自身的博客上也能收看,没有百折不挠住。

8.在国家骨干期刊杂志上录用或发布一篇学术故事集。

小结:这一个,仔细想了下,算是吧,而且还开支了诸多时间。

9.要有每月总计。

小结:那几个,自从做了那几个二零一一年的条条框框,压根就从不写过1次。

N个体加入一场那样的游玩的较量,赛程规定私行多个人里面都要进行一场交锋:那样一起有场交锋。竞技已经进展了一某些,大家想精晓在最佳气象下,比赛甘休后最多会生出稍微剪刀石头布意况。即给出已经发出的比赛结果,而你能够自由布署剩下的比赛的结果,以博取尽量多的剪刀石头布情况。

如上是对贰零壹贰年规则的下结论,真是惨不忍睹啊,没有形成的位置太多了。仔细分析下,恐怕存在五个地点的原委,一是安顿过高,这一年内不能成功,二是安插合适,只是人的题材罢了。回头想想,除了“系统架构划设想计师”的考究算是比较困苦的以外,其它没做好,多数要么因为个人原因。当然,这一年来,也有许多事情是本身不或许控制的(开头找借口了),比如出差到实地支付多个多月,基本没时间做别的业务。不过全体来说,依然要好个人的原委很多。贰零壹伍年又来了,上班已经1个多星期了,从度岁开头,就在思索这一年的劳作规划,未来是该入手记下来了,纵然有个别东西,写下去也不至于自身会自然执行,不过不写出来,不督促协调,很或许更完结持续。

Input

先说下团结干活儿四五年的感触呢。近日在西部2个共用性质的钻探所上班,首如若做.NET平台下的WinForm和Web开发,面向的客户都是些素质水平较低的用户(此处说的是消息化素质,不是个人素质教养,相对没有此外贬低用户的情致),项目工作拓展算不上顺遂。自身完成学业后就到来了这几个单位,单位的管理水平和支付程度比较起来,就连丹佛那样地点的大部分IT公司来讲,都仍旧有相当大差异。那几个年一向按领导的渴求,做那做那,算得上没有功劳也有苦劳的吗,然而在个人成长规划方面没有收获,单位也未曾别的可供参考的生意成长安顿和职业技术培养和演练机制。其实,那应当算是小编工作最发烧的地点,干了那些年从未看到升高,不晓得以往的路怎么走。一起进入的同事,包括后来的同事,也有司空眼惯跳走的,只是本身家已经安在此时了,想走也不大概的,就算换个单位,也不见得会比那一个好多少,再说,领导对我也好不不难相比较推崇,对自个儿个人在做事和生活上也终于相比较帮忙,所以,最后如故控制,在那前赴后继干下去。

输入文件的第二行是3个平头N,表示参与竞赛的食指。

二零一五年,是重复起头的一年,这段日子,自个儿也在就学东西,寒假买了些专业方面包车型客车书本在读,首要的想法依旧什么提高本身,那恐怕也是做事几年但又从不精神进展的恋人,都曾面临的难点呢。针对这一年的规划,也写下去,给协调有个别鼓励吧。

尔后是2个NN列的数字矩阵:一共N行,每行N列,数字间用空格隔离。

2014干活陈设:

1.对现有开发平台ASP.NET
MVC有比较尖锐的刺探,包罗对前者设计与编码,都要有感觉获得、看得出来的前行。

2.就学项目管理的连锁技能,二零一九年好运获得领导强调,能够开首充当项目管理方面的有个别做事了,要抓住那些机遇,让自身具有进步。

3.一心读书SQL
Server相关的文化。说实话自个儿对那方面很感兴趣,而且此前在那方面到底单位里左右的可比好的一人了,只是后来职分和方向太多,把它荒废了,而现年必将要优质在那方面发力。

4.调整工作激情,无论处在什么样景况,都要保全一颗积极向上的心气,贰个为品种负责、为单位承担、为客户承担的心思,心态不佳,什么都做不佳。而且你的干活态度怎么,就算再掩饰,同事也会看在眼里,藏在心里的。

5.转移方今的行事情形,明白好什么是关键的事,什么是友善应该老马去做的事。学会时间管理的法门和优质的工作格局,跨国公司切磋所那种单位,面对的是有个别管理水平不太高的集团主,有时候做起工作来,是很看不惯,可是尽力吧,减少被她们不成立的牵着鼻子走的空子。目的是尽量少被打断,学会让她们等一下,学会说不,学会做1个“专业”的软件职员(参考《The
Clean Coder》)。

6.本来每星期天篇博客,每月3个总括,那些如故要走的,即使二〇一八年尚无持之以恒(准确点说是没有做),不过仍旧有必不可少在当年几次三番开始展览下去的。养成2个地道的习惯,无论对工作照旧活着,都以极度有支持的。

7.坚持不渝阅读。作者欣赏读书,也觉得阅读是八个很好的上学手段,尤其是在未来这几个环境下,也是为数不多可选的求学格局之一。二〇一九年权且的阅读布署有:

ASP.NET MVC4尖端编制程序、
ASP.NET MVC4Web编程(在读)、
ASP.NET MVC4框架揭秘(在读,感觉以偏概全不见泰山,比较棘手,恐怕是因为个人水平原因吗)
编排可保护的JavaScript、
JavaScript语言精彩、
高成效程序员的修身(已读)、
程序员的工作素养(已读)、
高效开发1000零一夜(在读)、
急速软件开发:原则、格局与执行(C#修订版)、
迅猛技能修炼:敏捷开发与设计的特级实践、
情势:工程化达成及扩充(设计格局C#版)、
代码整洁之道(The Clean Code英文版,普通话版已经看过,觉得笔者写的挺好)、
重构:改进既有代码的设计(其实前边想看那些,不过买了代码整洁之道)、
SQL Server 二零一二深远解析与质量优化(第壹版)、
数量挖掘与数据化运维实战:思路、方法、技艺与应用、
科普分布式存款和储蓄系统:原理分析与架构实战、
2个程序员的奋斗史、
程序员,你伤不起、
路易港麻将高级打法、

阅读,要有阅读的法子,最基本的一个正是要有读书笔记,通过它一是更精确地精晓里面包车型客车道理,二是足以做一些重视音讯的提炼,今后想看的时候,能够随手拈来,也利于再度学习。若是不做笔记,只是读一遍罢了,往往效果不见得理想。下边列的书目很多,貌似现在都不怎么付之东流了,不过不尝试哪个地方能精通呢。最想的照旧,能沉下心来,仔细阅读,有所收获吧。

8.朝鲜语学习。罗马尼亚语向来没有放任过,偶尔也会抽时间学习。二〇一九年的对象是把ibt的单词背了,相关语法学习下,抓牢据悉的陶冶,为下一步的想法做准备。

9.故事集发布。因为职称评定审查的题材,不揭橥是非凡的,国家大旨期刊至少一篇吧。

10.操练肉体。二〇一九年过年病了一场,虽说相当的小,但像本身这么以前连发烧咳嗽都基本没有的人,也好不简单相当大的一场吧。坚实锻练,至少每两周要打二次羽球吧。

在第(i+1)行的第j列的数字假设是1,则象征i在已经爆发的交锋中赢了j;该数字若是0,则象征在已经爆发的比赛中i败于j;该数字是2,表示ij中间的竞赛没有产生。数字矩阵对角线上的数字,即第(i+1)行第i列的数字皆以0,它们只是是占位符号,没有别的意义。

上述十条,是本身二零一五年的干活安排,至于以后3至5年的安排性,就不贴了。总的来说,算是1个对友好的许诺、勉励和督察吗,以期让祥和能享有前进,也可望大家都能制定三个安插,来年再看的时候,肯定会有不测的顿悟和获得。

输入文件保证合法,不会发生争辩,当i≠j时,第(i+1)行第j列和第(j+1)行第i列的多少个数字照旧都是2,要么多少个是02个是1。

Output

输出文件的第①行是二个平头,表示在您安顿的比赛结果中,出现了多少剪刀石头布情况。

出口文件的第三行先导有1个和输入文件中格式相同的NN列的数字矩阵。第(i+1)行第j个数字描述了ij以内的比赛结果,1意味着i赢了j,0表示i负于j,与输入矩阵差别的是,在这几个矩阵中从未代表竞技没有进行的数字2;对角线上的数字都以0。输出矩阵要保险合法,不能够发出争论。

 

题解:http://blog.csdn.net/pouy94/article/details/5972444

PS:那题太牛叉了值得一做……

 

代码(896MS):

图片 1图片 2

  1 #include <cstdio>
  2 #include <cstring>
  3 #include <iostream>
  4 #include <algorithm>
  5 #include <queue>
  6 using namespace std;
  7 
  8 const int MAXN = 110;
  9 const int MAXV = MAXN * MAXN;
 10 const int MAXE = MAXN * MAXV;
 11 const int INF = 0x7f7f7f7f;
 12 
 13 struct ZWK_FLOW {
 14     int head[MAXV], dis[MAXV];
 15     int to[MAXE], next[MAXE], flow[MAXE], cost[MAXE];
 16     int n, ecnt, st, ed;
 17 
 18     void init() {
 19         memset(head, 0, sizeof(head));
 20         ecnt = 2;
 21     }
 22 
 23     void add_edge(int u, int v, int c, int w) {
 24         to[ecnt] = v; flow[ecnt] = c; cost[ecnt] = w; next[ecnt] = head[u]; head[u] = ecnt++;
 25         to[ecnt] = u; flow[ecnt] = 0; cost[ecnt] = -w; next[ecnt] = head[v]; head[v] = ecnt++;
 26         //printf("%d %d %d %d\n", u, v, c, w);
 27     }
 28 
 29     void spfa() {
 30         for(int i = 1; i <= n; ++i) dis[i] = INF;
 31         priority_queue<pair<int, int> > que;
 32         dis[st] = 0; que.push(make_pair(0, st));
 33         while(!que.empty()) {
 34             int u = que.top().second, d = -que.top().first; que.pop();
 35             if(d != dis[u]) continue;
 36             for(int p = head[u]; p; p = next[p]) {
 37                 int &v = to[p];
 38                 if(flow[p] && dis[v] > d + cost[p]) {
 39                     dis[v] = d + cost[p];
 40                     que.push(make_pair(-dis[v], v));
 41                 }
 42             }
 43         }
 44         int t = dis[ed];
 45         for(int i = 1; i <= n; ++i) dis[i] = t - dis[i];
 46     }
 47 
 48     int minCost, maxFlow;
 49     bool vis[MAXV];
 50 
 51     int add_flow(int u, int aug) {
 52         if(u == ed) {
 53             maxFlow += aug;
 54             minCost += dis[st] * aug;
 55             return aug;
 56         }
 57         vis[u] = true;
 58         int now = aug;
 59         for(int p = head[u]; p; p = next[p]) {
 60             int &v = to[p];
 61             if(flow[p] && !vis[v] && dis[u] == dis[v] + cost[p]) {
 62                 int t = add_flow(v, min(now, flow[p]));
 63                 flow[p] -= t;
 64                 flow[p ^ 1] += t;
 65                 now -= t;
 66                 if(!now) break;
 67             }
 68         }
 69         return aug - now;
 70     }
 71 
 72     bool modify_label() {
 73         int d = INF;
 74         for(int u = 1; u <= n; ++u) if(vis[u]) {
 75             for(int p = head[u]; p; p = next[p]) {
 76                 int &v = to[p];
 77                 if(flow[p] && !vis[v]) d = min(d, dis[v] + cost[p] - dis[u]);
 78             }
 79         }
 80         if(d == INF) return false;
 81         for(int i = 1; i <= n; ++i) if(vis[i]) dis[i] += d;
 82         return true;
 83     }
 84 
 85     int min_cost_flow(int ss, int tt, int nn) {
 86         st = ss, ed = tt, n = nn;
 87         minCost = maxFlow = 0;
 88         spfa();
 89         while(true) {
 90             while(true) {
 91                 for(int i = 1; i <= n; ++i) vis[i] = false;
 92                 if(!add_flow(st, INF)) break;
 93             }
 94             if(!modify_label()) break;
 95         }
 96         return minCost;
 97     }
 98 } G;
 99 
100 int n, m;
101 int mat[MAXN][MAXN], ans[MAXN][MAXN];
102 
103 inline int encode(int i, int j) {
104     if(i > j) swap(i, j);
105     return i * n + j;
106 }
107 
108 int main() {
109     scanf("%d", &n);
110     for(int i = 1; i <= n; ++i) for(int j = 1; j <= n; ++j) scanf("%d", &mat[i][j]);
111     m = n * n;
112     int ss = n + m + 1, tt = ss + 1;
113     G.init();
114     int sum = n * (n - 1) * (n - 2) / 6;
115     for(int i = 1; i <= n; ++i) {
116         for(int j = 1, tmp = 1; j < n; ++j, tmp += 2) G.add_edge(ss, i, 1, tmp);
117         for(int j = 1; j <= n; ++j) if(mat[i][j] != 0)
118             ans[i][j] = G.ecnt, G.add_edge(i, encode(i, j), 1, 0);
119     }
120     for(int i = 1; i <= m; ++i) G.add_edge(i + n, tt, 1, 0);
121     int x = G.min_cost_flow(ss, tt, tt);
122     printf("%d\n", sum - (x - n * (n - 1) / 2) / 2);
123     for(int i = 1; i <= n; ++i) {
124         for(int j = 1; j <= n; ++j) {
125             if(j != 1) printf(" ");
126             if(mat[i][j] != 2) printf("%d", mat[i][j]);
127             else {
128                 if(G.flow[ans[i][j]] == 0) printf("1");
129                 else printf("0");
130             }
131         }
132         puts("");
133     }
134 }

View Code